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
. 我错过了什么?
sudo
写入的手册页,
-H, --set-home
请求安全策略将HOME
环境变量设置为目标用户的密码数据库条目指定的主目录。根据策略,这可能是默认行为。
这里的关键是-H
设置目标用户的主目录。当您调用sudo env
目标用户时,推断为root
. (如果您使用类似的东西,sudo -u john -H env
您将获得 . 的主目录john
。)