在故障排除中vi
,我注意到在我的 Ubuntu 安装中运行命令sudo env | grep HOME
会返回运行命令的用户的主目录 ( /home/USER
)。但我注意到在我的 Linux Mint 安装上运行命令sudo env | grep HOME
returns /root
。我在两台计算机上都看过/etc/sudoers
,除了一个Defaults mailto=
条目外,它们是相同的。他们都有Defaults env_reset
。如何sudo
确定如何设置HOME
环境变量?我在别处看到 ( https://unix.stackexchange.com/a/174587/471273 )sudo -V
告诉你保留了哪些环境变量,但在两台计算机上它只告诉我版本sudo
和它安装的插件。我也看到在sudo
手册页这一部分让我觉得我需要询问如何查看我不知道该怎么做的安全策略。
-H, --set-home
Request that the security policy set the HOME environment
variable to the home directory specified by the target user's
password database entry. Depending on the policy, this may
be the default behavior.
当.vimrc
我vim
以sudo
. 我可以将 复制.vimrc
到/root
目录,但我对这种行为和sudo
.
Ubuntu 包含一个 sudo 的补丁版本,它在2011 年左右的某个时候更改了 env 保存
$HOME
后得以保留(据我所知...... sudo 的更新日志一团糟)。大多数其他发行版没有修补那个。但在 Ubuntu 19.10 中,它们更改为上游行为,所以有趣的是你的 Ubuntu 机器仍然具有旧行为(除非你很长时间没有更新,或者在某个地方覆盖了它)。sudo