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

我知道“为什么”的问题是危险的:)我有RHO上的sudo访问,并注意到这一点:

su -u fred su - Password: 

(我不知道fred的密码)。

 sudo -u fred bash [fred] $ 

有没有办法不需要fred的密码做su ? 有没有理由要这个?

不同之处在于, sudo使用的是连接到您正在运行的帐户的权限,而su与您正在更改的用户在正常提示下login更类似。

尝试su root作为sudoers文件中没有权限的常规用户 – 无论您当前的用户权限如何,都可以使用root凭据更改为该用户。

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

sudo暂时caching你的密码…这是这里的情况吗?