我希望能够以其他用户身份登录并保留大部分(但不是全部)我的环境。具体来说,我想$HOME
为新用户设置正确的值,但保留其他所有内容。如果我使用sudo -E
,我的所有环境都保持不变,包括$HOME
.如果我使用sudo -E su
,它几乎可以工作,但由于某种原因不保留$ZDOTDIR
,这特别是我想保留的变量之一。
有谁知道一个方便的解决方案,或者为什么被擦除的少数变量之一sudo -E su
是$ZDOTDIR
?谢谢。
答案1
由于 sudoers 设置因操作系统而异,因此很难预测什么适合您。
sudo -EH
H 开关尝试将 $HOME 设置为目标用户的值,但这不会保留 $ZDOTDIR。
或者使用 visudo 将以下行添加到 sudoers 的末尾。这告诉 sudo 保留当前环境中列出的变量。在这种情况下,您将sudo
无需使用开关即可使用。
Defaults env_keep += "ZDOTDIR OTHERVAR1 OTHERVAR2 [...]"