当sudo su与sudo -i相比时

我正在阅读一些关于Linux配置的教程:

  • 要完成许多配置,重要且必须是root

嗯,我注意到在很多地方都使用了sudo susudo -i,即使两者都能达到相同的目标,我对以下问题有疑问:

  • 什么情况下必须使用其中一种方法而不是另一种?

我提出这个问题是因为某种原因存在这两种方法。


1没有中央机构来决定什么是“强制性”的,什么不是。对于大多数情况来说,你使用哪个都无关紧要,所以这是个人偏好的问题。请注意它们并不完全相同:它们会将你放置在不同的工作目录中,并具有不同的环境变量。 - user535733
2可能有帮助,也可能更加混淆:https://askubuntu.com/questions/331062/what-is-the-functional-difference-between-sudo-su-and-sudo-i - chili555
1关于这个问题已经有一个帖子了,而且已经得到了回答。 去那里看一下,我想这会回答你所有的问题! - André Clérigo
@user535733 关于They land you in different working directories,根据@chili555分享的链接,即https://help.ubuntu.com/community/RootSudo#Special_notes_on_sudo_and_shells所述,是不正确的。请注意表格数值。 - Manuel Jordan
@ManuelJordan '工作目录'与'主目录'是不同的。 - user535733
请考虑撰写您的答案,如果能增加更多细节将会更加出色。 - Manuel Jordan
1个回答

根据用户@user535733在评论部分指出,这两个命令将带您进入不同的工作目录。 sudo su会在当前工作目录下以root身份执行命令,但sudo -i会带您进入root的主目录(默认为/root)。
另一个区别是,如果您使用的是除bash之外的其他shell,sudo -isudo su将带您进入为root用户配置的shell(Ubuntu中默认为bash),而sudo -s则使用您为自己配置的shell(例如zsh)。