Redhat
如何配置 sudoers 以始終保持 LD_LIBRARY_PATH 環境變數?
無論我嘗試什麼,在我使用 sudo 執行命令後,似乎都沒有保留LD_LIBRARY_PATH環境變數。我設法讓它堅持下去的唯一方法是在我從命令行呼叫它時為我的
sudo
命令添加前綴LD_LIBRARY_PATH=/the/path
,但我不想每次都這樣做。似乎 env_keep 選項忽略了這個變數,exempt_group 選項也是如此。
我的 %group 目前
ALL=(ALL) NOPASSWD:ALL
在 sudoers 中具有訪問權限。我希望為我執行的任何命令保留這個特定的環境變數。我怎樣才能做到這一點?
我的伺服器執行的是 Red Hat Enterprise Linux 5.7。
您可能希望可以使用
Defaults env_keep += "LD_LIBRARY_PATH FRED"
CentOS 6.2
但是對with的快速測試Sudo version 1.7.4p5
沒有通過LD_LIBRARY_PATH
但確實通過了FRED
。sudoers 手冊頁有這樣的說法請注意,大多數作業系統上的動態連結器將刪除那些 可以控制來自 setuid 執行檔環境的動態連結,包括 須藤。根據作業系統,這可能包括_RLD、DYLD_、LD_、 LDR_、LIBPATH、SHLIB_PATH 等。這些類型的變數從 sudo 之前的環境甚至開始執行,因此,它不是 sudo 可以保存它們
所以看起來系統
LD_LIBRARY_PATH
在 sudo 看到它之前就從環境中刪除了它。