中/etc/sudoers
,总是有:
root ALL=(ALL:ALL) ALL
但是,root 用户(UID 0)运行时不需要输入密码sudo command
。
对于其他用户,需要密码,除非他们的条目包含NOPASSWD
或之前的身份验证尚未超时:
user ALL=(ALL:ALL) NOPASSWD:ALL
^^^^^^^^
答案1
sudo
允许用户根据其配置方式以 UID 0(或其他用户)身份执行命令。无需向 root 询问密码即可以 UID 0 运行命令,因为它已经是 UID 0。
此外,root 还可以访问任何人,因此在以 UID 0su
执行时无需提示输入密码。sudo -u user
注意:我确实相信有一个 PAM 设置甚至要求 root 在使用su
.
答案2
虽然这是一个有趣的不一致。停止 root 是没有意义的,因为 root 具有CAP_SETUID
和 的功能CAP_SETGID
,因此不需要 sudo。它可以做任何它想做的事。
如果sudo
检查的是root,而不是这些功能,那么可能存在一个潜在的错误:没有功能的root可能会升级(我不知道我没有查看代码或测试过)。