只是想得到一点建议。我拥有服务器的 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 身份运行它们!