在 Ubuntu 19.10 Eoan Ermine 之前的 Ubuntu 版本中,当我使用 运行命令时,该命令会在环境变量中sudo
接收我的主目录。$HOME
这是我早就预料到并警告其他人的行为。如果我想sudo
重置$HOME
环境变量,以便它引用目标用户的主目录而不是我自己的,我必须传递-H
选项(或者-i
,尽管这样做更多)。
ek@Kip:~$ lsb_release -d
Description: Ubuntu 18.04.3 LTS
ek@Kip:~$ sudo printenv HOME # Shows ek's home, not root's.
/home/ek
ek@Kip:~$ sudo -u as printenv HOME # Shows ek's home, not as's.
/home/ek
ek@Kip:~$ sudo -H printenv HOME # Shows root's home.
/root
ek@Kip:~$ sudo -Hu as printenv HOME # Shows as's home.
/home/as
当我第一次升级到 Ubuntu 19.10 时,我惊讶地发现无论如何sudo
似乎都重置了!$HOME
现在我继续观察到 19.10 发布并且我已经安装了更新——在新安装的系统和我升级到 19.10 的系统上。
ek@Cord:~$ lsb_release -d
Description: Ubuntu 19.10
ek@Cord:~$ sudo printenv HOME # Shows root's home, even without -H or -i.
/root
ek@Cord:~$ sudo -u as printenv HOME # Shows as's home, even without -H or -i.
/home/as
ek@Cord:~$ sudo -H printenv HOME # Also shows root's home.
/root
ek@Cord:~$ sudo -Hu as printenv HOME # Also shows as's home.
/home/as
我认为这可能是由于更新了配置文件。但我检查了,并always_set_home
没有出现在我的 19.10文件的任何Defaults
行中。/etc/sudoers
从 19.10 开始,是什么让sudo
待遇$HOME
有所不同,为什么会做出这种改变?sudo
在我以前使用过的情况下,这是否可以安全地使用 plain sudo -H
?