为什么我不能通过“su”成为root?

为什么我不能通过“su”成为root?

为什么不起作用susudo -i可以?当我想通过 via 成为 root 时su,系统不接受我的密码,但 viasudo -i它可以工作。

su: Authentication failure

答案1

简短的答案可以在 sudoers 手册页中找到(键入man sudoers以查看完整页面):

Unlike su(1), when sudoers requires authentication, it validates
the invoking user's credentials, not the target user's (or root's)
credentials.

sudo询问您的密码也是如此,并且su询问 root 密码。

长答案

su方法更改用户,例如,以该用户身份启动 shell。您可以指定哪个用户,例如su someuser.然后系统会提示someuser您输入 的密码。如果不指定用户,则su默认为 root 用户。因此,当您输入 时su,它会要求输入 root 密码。

sudo方法,以另一个用户身份运行命令sudo -i表示以另一个用户身份运行登录 shell。您可以指定哪个用户,但如果不这样做,则默认为 root。应用安全策略su,而不是像那样期望其他用户的密码。sudo默认的安全策略是检查文件/etc/sudoers。该文件的默认版本包括:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

这意味着,如果用户在该sudo组中,则可以以任何用户身份运行任何命令。如果sudo -i对您有用,可能是因为您自己的帐户位于 sudo 组中。但在sudo执行命令之前,它会要求你的再次输入密码——不是 root 用户的密码。

答案2

设置/更改root密码:

sudo passwd root

然后你就可以运行su命令了。

相关内容