Fedora

sudo 到其他使用者不保留 DISPLAY 變數

  • October 16, 2013

我有一個 /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”會開始剝離(部分)環境?

sudo保留變數的同時,您的使用會su再次擦除它們。不要使用su,完全沒有必要。如果你想要一個外殼,請使用sudo -i

引用自:https://serverfault.com/questions/546434