我有一个 /etc/sudoers 文件,它在 F18 之前的所有 Fedora 版本中都能正常工作,但我们注意到,在升级到 F18(并安装 FreeIPA,尽管我将在这里展示的案例是使用此文件完成 sudo 处理以最小化变量)时,sudo 不会按照 sudo 的要求保留 DISPLAY 变量:
# sudo -V
:
Environment variables to preserve:
PYTHONPATH
:
HOSTNAME
DISPLAY
COLORS
:
# exit
[user2]$ echo $DISPLAY
:1
[user2]$ sudo su - user1
[user1]$ echo $DISPLAY
DISPLAY: Undefined variable.
[user1]$
通常,我们使用 ssh -Y 来回传输显示,但这阻止了我们这样做。我已经排除故障好几天了,但没有成功。有没有其他人遇到过这种情况,或者有什么想法?
更新:进一步的测试表明这可能不是 sudo 的问题,但可能与 su 本身有关:
[user2]$ sudo -u user1 echo $DISPLAY
:1
[user2]$
这会改变什么吗?为什么“su”会开始剥离(部分)环境?
答案1
虽然sudo
保留了变量,但使用 会su
再次清除它们。不要使用su
,这完全没有必要。如果你想要一个 shell,请使用sudo -i