我已经从手册上看过了,但我看不出有什么不同。
su -更改用户ID或成为超级用户
sudo -s [command]-s ( shell )选项运行SHELL环境变量指定的shell (如果设置了它)或passwd(5)中指定的shell。如果指定了命令,则将其传递给shell执行。否则,执行交互式shell。
sudo -i消失的手动描述
发布于 2011-10-22 06:28:39
sudo允许您使用根权限在自己的用户帐户中运行命令。su允许您切换用户,以便您实际上是以root身份登录。
sudo -s运行具有根权限的shell。sudo -i还获取根用户的环境。
要了解su和sudo -s之间的区别,请执行cd ~,然后在它们之后执行pwd。在第一种情况下,您将位于root的主目录中,因为您是root用户。在第二种情况下,您将位于自己的主目录中,因为您拥有根用户特权。
关于这个问题,这里有更多的讨论。
发布于 2019-08-12 16:42:04
su询问根密码,变成root,打开一个交互式的非登录shell.su -问根密码,变成root,打开一个交互式的登录壳。sudo -s问你的密码,变成根,打开一个交互式的非登录外壳。sudo -i询问您的密码,变成root,打开一个交互式登录shell。最佳实践是使用上述两个命令。
sudo su询问你的密码,暂时变成根作为根运行su。sudo su -询问你的密码,暂时变成根作为根运行su -。因此,在本例中,您正在使用su运行sudo,您不需要知道root的实际密码。结果与su和su -的结果相同。
发布于 2011-10-22 19:38:31
su询问用户"root“的密码。
sudo询问您自己的密码(并检查是否允许您以root用户的身份运行命令,这是通过/etc/sudoers配置的--默认情况下,属于"admin“或"sudo”组的所有用户帐户都允许使用sudo)。
sudo -s以根用户身份启动shell,但不会更改工作目录。sudo -i模拟登录到根帐户:您的工作目录将是/root,根的.profile等将在登录时获得。
https://askubuntu.com/questions/70534
复制相似问题