为什么不 sudo -H 设置 HOME 变量?

0 sudo

我刚刚开始使用 Manjaro(基于 Arch Linux)并且遇到了一件有趣的事情:

$ sudo env | grep HOME
HOME=/root
$ sudo -H env | grep HOME
HOME=/root
Run Code Online (Sandbox Code Playgroud)

我查看了手册页sudo并检查以确保我的主目录实际上正确设置在/etc/passwd. 根据我的理解,上述第二个命令的输出应该/home/laurence. 我错过了什么?

roa*_*ima 5

sudo写入的手册页,

-H, --set-home 请求安全策略将HOME环境变量设置为目标用户的密码数据库条目指定的主目录。根据策略,这可能是默认行为。

这里的关键是-H设置目标用户的主目录。当您调用sudo env目标用户时,推断为root. (如果您使用类似的东西,sudo -u john -H env您将获得 . 的主目录john。)