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