问题
尝试允许组中的特定用户sudo
使用以下代码执行紧急关机:
echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger
注意,这是没有使用命令sudo
!
编辑:忘记提及,拥有的两个文件都root:root
拒绝允许任何权限或所有者更改,即使是用户也无法更改root
。
理论情景
黑客入侵通常无人看管的系统,并获取读取机密数据的权限。自动脚本会关闭机器(假设黑客行为已被检测到),而不是让黑客继续运行。
虽然这不是我的确切用例,但它足够相似。
我尝试过的
创建一个 bash 脚本来执行上述两行代码,赋予其
root:sudo
所有者,并添加一行以visudo
允许特定用户运行该任务而无需输入密码。尝试将这两个文件的所有者更改为
root:sudo
。尝试更改这两个文件的权限,以便该组
root
可以对它们进行写入。
这个想法是不要“嵌入” 的密码sudo
,这样我就可以定期更改它,而不会忘记修改其他文件(或让关闭计算机的进程以root
特权运行)。提前感谢您的帮助。
答案1
我的意见是将脚本中的行改为如下形式:
echo 1 | sudo tee /proc/sys/kernel/sysrq > /dev/null
echo o | sudo tee /proc/sysrq-trigger > /dev/null
并授予特定用户使用tee
这些参数来运行命令的权限,而无需输入密码,例如:
username ALL=(root:root) NOPASSWD: /usr/bin/tee /proc/sys/kernel/sysrq
请记住,无法使用将字符串重定向到需要特定权限的文件中>
,这意味着:
sudo echo hi > file
echo hi sudo > file
是行不通的。
同时您不能简单地更改这些文件的所有者,因为它/proc
是一个由内核管理的虚拟文件系统。