有关 Ubuntu Server 上的 SUID 和 sudo 的建议

有关 Ubuntu Server 上的 SUID 和 sudo 的建议

只是想得到一点建议。我拥有服务器的 root 访问权限,并且我想创建第二个用户并通过 sudo 执行所有操作(如果需要),而不是以 root 身份登录。文件 /etc/sudoers 内容如下:

Defaults        env_reset
root    ALL=(ALL) ALL
%sudo ALL=(ALL) ALL

我已将第二个用户“bob”添加到系统中,并将其添加到 sudo 组,以确保他们可以执行 root 命令。尝试任何类型的特权操作时,我收到以下错误:

sudo: must be setuid root

我的理解是,我必须使用

chmod u+s /usr/bin/sudo (or should this be g+s?)

这将使我能够执行 sudo。

对于这种方法,我是否需要考虑任何安全问题?这种方法是否正确?很多关于此问题的帖子都说这是一个错误,但设置是虚拟服务器,而且我只被授予了 root 访问权限。我认为/usr/bin/sudo故意没有设置 SUID 是为了限制其他用户运行它,并确保我必须明确设置它。

答案1

你确实必须这么做chmod u+s /usr/bin/sudo

我觉得有点奇怪的是,我安装的所有 Ubuntu 服务器(从 10.04LTS 到 12.04LTS)都带有这个 +s 设置。所以,是的,它是正确的。此外,通过 sudo 而不是使用 root 执行操作是一种很好的安全方法。日志/var/log/auth.log记录了通过 sudo 调用所做的事情。

答案2

我建议您执行以下命令:

chown root /usr/bin/sudo
chgrp root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
chmod 0440 /etc/sudoers
chmod u+s /usr/bin/sudo

当然你必须以 root 身份运行它们!

相关内容