![为什么 sudo -H 不设置 HOME 变量?](https://linux22.com/image/127708/%E4%B8%BA%E4%BB%80%E4%B9%88%20sudo%20-H%20%E4%B8%8D%E8%AE%BE%E7%BD%AE%20HOME%20%E5%8F%98%E9%87%8F%EF%BC%9F.png)
我刚刚开始使用 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
。)