这两个命令有什么区别?当想要以另一位用户的身份执行某些操作时,哪个更好地模拟该用户?
sudo -H -iu USER command
和
su -l USER -c command
答案1
如果您尝试以其他用户身份运行命令,sudo
则会询问您的密码,su
也会询问其他用户的密码。
Sudo 的设计目的是让非特权用户以不同的用户身份运行特定的命令,因此它有一个配置文件/etc/sudoers
,可以让系统管理员决定哪些用户可以像其他用户一样运行哪些命令。 IE 具有细粒度的权限。这些权限可以被授予,也可以在以后撤销。
Su 还允许您以其他用户身份运行命令,但未设计为具有相同的细粒度权限。如果您拥有其他用户的密码,您可以以该用户的身份执行任何操作。撤销该访问权限的唯一方法是更改其他用户的密码。
意见提醒
一般来说,我不会在大多数事情上使用sudo
not 。su
为某人提供一点访问权限更容易,而无需将所有内容的密钥(您的密码)交给他们
最终意见
尝试“模拟”另一个用户时,效果没有太大差异。两者都以该用户身份运行您的命令。