如何否认“sudo su”

我有几个服务器,一些用户需要sudoers来工作。 问题是,当sudoers可以运行命令sudo su并以root用户身份login。 运行该命令似乎非常危险。

我尝试使用文件/ etc / sudoers中的命令别名,但它没有奏效。 有什么办法,他们是sudoers,但不能运行命令sudo su

%sudo ALL =(ALL)NOPASSWD:ALL

您已经有效地为sudo组中的用户完全无限制地控制您的系统。 试图否认他们访问su二进制文件,正如其他人指出的那样,他们已经通过sudo和该团体的成员拥有root权限。

您应该分析sudo组中用户的工作stream程,以确定他们需要以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和DUMPS Cmnd_Alias中的命令添加到sudo组可以运行的命令列表中。

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

为了正确地避免这个,你必须采取不同的方法。
如果你不允许sudo su我仍然可以运行sudo -u root /bin/sh如果你不允许的话,我会写一个小的包装脚本并执行这个…

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

目前还不清楚你做了什么,但你可以授予特定用户/组sudo特权和特定的命令。 为了获得更好的帮助,最好提供更多的信息,比如sudoers文件内容以及你已经尝试过的东西。