为什么“su - X”需要密码,而“sudo -u X bash”不需要?

为什么“su - X”需要密码,而“sudo -u X bash”不需要?

我知道“为什么”的问题很危险:) 我在 RHEL 上有 sudo 访问权限,并且注意到了这一点:

su - fred
Password:

(我不知道弗雷德的密码)。

sudo -u fred bash
[fred] $

有没有办法不需要 fred 的密码就可以执行su?有什么理由想要这样做吗?

答案1

区别在于,它sudo使用附加到您正在运行的帐户的权限,而su更类似于以您要更改为的用户身份在正常提示符下登录。

尝试su root以没有文件权限的普通用户身份进行操作sudoers- 您可以使用root凭据更改为该用户,而不管您当前用户的权限如何。

相反,文件sudo中分配的权限/etc/sudoers允许您的当前用户以 root 身份工作,而无需知道任何密码,只需知道您自己的密码即可。例如,在命令sudo前面添加su -u fred- 不再需要 fred 的密码,因为此时su将以 root 权限运行。

答案2

sudo暂时缓存您的密码...这里是这种情况吗?

相关内容