编辑 sudoers 文件以限制用户的命令

编辑 sudoers 文件以限制用户的命令

是否可以编辑 sudoers 文件,以便用户可以使用 sudo 执行除指定命令之外的任何命令?相反,我相信可以设置 sudoers 文件,以便用户只能执行给定的命令列表。

编辑:我真正想要删除的命令是 halt 和 reboot... 这让我想到 halt 和 reboot 有特殊的系统调用。你能从用户那里拿走系统调用吗?如果不能,是不是因为 unix 权限系统抽象了系统调用而忽略了这一点?

答案1

另一种看法是,如果用户拥有基本上不受限制的根访问权限,他们就可以轻松获得完全根访问权限。

尽管你也许能够解决某些问题,但却很容易被规避。

尽管需要花费很多时间去学习,但 SElinux 仍是一种可行的方法。

答案2

是也不是...您可以通过在文件前面加上感叹号(!)来阻止用户运行特定文件,但是您无法阻止用户将文件复制到另一个位置,然后从那里运行它。

User_Alias    ADMINS = peter, bob, bunny, %operator

ADMINS        ALL    = !/usr/bin/su, !SHELLS

授予其他用户访问特定文件的权限

答案3

要执行您想要的操作(让用户保持运行停止、重新启动和关闭),您必须研究 SElinux 的内容以阻止用户进行这些系统调用。否则,用户将先运行 /bin/sh,然后运行 ​​/bin/halt,而无需通过 sudo。

答案4

如果用户真的想要重启,他会找到办法的。sudo -s,,sudo -i...sudo $EDITOR /etc/sudoers可以用来解除你的限制。

在类 Unix 系统中,只要您是 root (uid 0),就可以重新启动系统。如果您确实找到了限制这些系统调用的方法,可以这样做:

用户$ echo b | sudo tee /proc/sysrq-trigger

或其变体。或者通过引起内核崩溃来重新启动。或者...

最后,拥有 root 权限通常可以让您消除现有的任何限制。

相关内容