我刚刚开始使用 Manjaro(基于 Arch Linux),并且遇到了一件有趣的事情:
$ sudo env | grep HOME
HOME=/root
$ sudo -H env | grep HOME
HOME=/root
我查看了手册页sudo
并检查以确保我的主目录实际上在/etc/passwd
.根据我的理解,上述第二个命令的输出应该是/home/laurence
。我缺少什么?
答案1
手册页sudo
写道,
-H, --set-home
请求安全策略将HOME
环境变量设置为目标用户的密码数据库条目指定的主目录。根据策略,这可能是默认行为。
这里的关键是-H
设置目标用户的主目录。当您致电时,sudo env
目标用户被推断为root
。 (如果您使用类似的东西,sudo -u john -H env
您将获得 的主目录john
。)