如何拒绝“sudo su”

如何拒绝“sudo su”

我有几台服务器,其中一些用户需要 sudoers 才能工作。问题是当 sudoers 可以运行命令sudo su并以用户身份登录时root。运行该命令似乎非常危险。

我尝试在文件 /etc/sudoers 中使用命令别名,但没有奏效。有没有办法让他们成为 sudoers 但不运行命令sudo su

答案1

为了正确避免这种情况,您必须采取不同的方法。
如果您不允许,sudo su我仍然可以运行,sudo -u root /bin/sh如果您不允许,我将编写一个小的包装脚本并执行此...

解决这个问题的唯一方法是只允许需要的命令。

答案2

%sudo ALL =(全部)NOPASSWD:全部

su您实际上已授予 sudo 组中的用户对您的系统的完全不受限制的控制权。其他人指出,试图拒绝他们访问二进制文件是徒劳的,因为他们已经通过 sudo 获得了 root 权限并成为该组的成员。

你应该分析 sudo 组中用户的工作流程,以确定他们执行了哪些命令需要以 root 身份运行并使用 sudo 授予他们仅对这些命令的特权访问权限。如有必要,编写脚本并授予 sudo 组运行脚本的权限(但请确保他们没有写入权限),而不是其中的单个命令。

例如,你可能确定你的用户需要能够使用kill目录(你的本地脚本所在的位置)中的所有命令,/usr/local/sudocmds因此你可以向他们授予 sudo 访问权限,如下所示

%sudo    ALL=NOPASSWD: /usr/bin/kill, /usr/local/sudocmds

你也可以使用命令别名

Cmnd_Alias     PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias     DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump

%sudo ALL=NOPASSWD: PRINTING, DUMPS, /usr/bin/kill, /usr/local/sudocmds

PRINTING将和Cmnd_Alias中的命令添加DUMPS到 sudo 组可以运行的命令列表中。

看看sudoers手册页以获取更多信息和示例。

相关内容