为什么 sudo 在某些 Linux 发行版上将 HOME 目录更改为 /root,而在其他发行版上则不然?

为什么 sudo 在某些 Linux 发行版上将 HOME 目录更改为 /root,而在其他发行版上则不然?

在故障排除中vi,我注意到在我的 Ubuntu 安装中运行该命令sudo env | grep HOME会返回运行该命令的用户的主目录 ( /home/USER)。但我注意到在我的 Linux Mint 安装上运行命令sudo env | grep HOME会返回/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.

答案1

包括 Ubuntusudo 的修补版本$HOME在更改环境保存后保留的sudo某个时间2011年(据我所知...... sudo 的变更日志是一个烂摊子)。大多数其他发行版没有修补那个。但在 Ubuntu 19.10 中他们改变了上游行为,所以有趣的是你的 Ubuntu 机器仍然具有旧的行为(除非你很长一段时间没有更新,或者在某个地方覆盖了它)。

相关内容