为什么 sudo -s 比 sudo su 好?

fit*_*ojb 28 command-line sudo su

我在 Ask Ubuntu 中看到了很多关于偏好使用sudo -s而不是sudo su.

对我来说,这两个命令完全一样。但为什么sudo -s应该更好?

arr*_*nge 26

我认为sudo -s不是“更好”,它只是不同。

sudo -s

保留您的 $HOME 目录,因此当您启动程序时,它们将使用您的(而不是 root 的)配置文件等。 缺点:它们还可以更改 $HOME 目录中文件的所有权,典型示例是该.Xauthority文件,但我从来没有遇到过这个问题。

sudo su 或者 sudo -i

程序将使用根的主目录及其配置文件。这可能更直观,但这也意味着它不会使用您可能为自己设置的任何配置(别名、bash 历史记录……)。


hto*_*que 13

因为sudo -s不会改变你的环境变量,尤其是$HOME,它会留在HOME=/home/USER. 如果您使用它,当您启动的程序尝试访问用户的主目录时,sudo su这将更改为HOME=/root可能产生负面影响的方式。

所以基本上它就像运行图形程序时的sudovs。gksudo


psu*_*usi 5

除了已经提到的与环境变量的差异之外,我觉得sudo su很愚蠢和浪费,因为您要求sudosuroot身份运行,并要求它以 root 身份运行 shell。当你可以让第一个程序给你那个 shell 时,为什么要让一个程序让一个程序给你一个 root shell?这在任何实际意义上重要吗?不,我只是迂腐。

  • 还有另一个区别:`sudo -i` 将更改为 `/root` 目录,而 `sudo su` 将保留在您所在的目录中。 (2认同)