有时我会在许多网站的教程中看到sudo -H + command
例如sudo -H gedit /etc/apt/sources.list
. 但是我知道sudo gedit /etc/apt/sources.list
可以完成这项工作。所以任何人都可以告诉我和
有什么区别?sudo -H
sudo
有时我会在许多网站的教程中看到sudo -H + command
例如sudo -H gedit /etc/apt/sources.list
. 但是我知道sudo gedit /etc/apt/sources.list
可以完成这项工作。所以任何人都可以告诉我和
有什么区别?sudo -H
sudo
差异出现在例如
gedit
写入首选项文件或类似于$HOME
关闭时的文件时。许多程序都这样做。当你跑
then
$HOME
仍设置为您的主目录(例如/home/singrium
)并将gedit
其设置写入那里,但首选项文件将归root
. 这可能会使之后难以以gedit
您的用户身份运行,因为gedit
由于缺少权限而无法写入其设置。当您改为运行时
然后
$HOME
将被设置为root
的主目录(通常/root
)并将gedit
其首选项文件写入那里,而不会影响您的帐户。sudo -H
是相同的sudo --set-home
它避免了将用户的主文件夹权限更改为root。
从
man sudo
-H' The -H (HOME) option requests that the security policy set the HOME environment variable to the home directory of the target user (root by default) as specified by the password database. Depending on the policy, this may be the default behavior.
-H gedit
在您的情况下,将$HOME
变量设置为指向root
(默认情况下)而不是您的用户主目录。