如何拒绝“sudo su”

Gon*_*Gon 4 linux su root sudo

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

我尝试在文件 /etc/sudoers 中使用命令别名 ?? 但它没有用。有什么办法让他们是 sudoers 但不运行命令sudo su吗?

fak*_*ker 9

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

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

  • 白名单:**好**;黑名单:**糟糕**。 (7认同)

use*_*517 9

% sudo ALL = (ALL) NOPASSWD: ALL

您已有效地授予 sudo 组中的用户对您的系统的完全不受限制的控制权。试图拒绝他们访问su二进制文件是徒劳的,因为他们已经通过 sudo 和组成员身份获得了 root 权限。

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

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

%sudo    ALL=NOPASSWD: /usr/bin/kill, /usr/local/sudocmds
Run Code Online (Sandbox Code Playgroud)

您也可以使用命令别名

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
Run Code Online (Sandbox Code Playgroud)

它将PRINTINGDUMPSCmnd_Alias 中的命令添加到 sudo 组可以运行的命令列表中。

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