Linux下爲sudo命令定義PATH環境變量
有時候安裝了一個程序到/usr/local/bin目錄下,這個程序需要root權限執行。但是用sudo去執行的時候,又收到”sudo: XXXXX: command not found“的錯誤提示。
這是因爲當你使用sudo去執行一個程序時,出於安全的考慮,這個程序將在新的、最小化的環境中執行。也就是說,諸如PATH這樣的環境變量,在sudo命令下已經被重置成默認的狀態了。所以當一個剛初始化的PATH變量中不會包含你所要運行的程序所在的目錄,用sudo去執行,你就會得到“command not found”的錯誤。
要改變PATH在sudo會話中的初始值,打開/etc/sudoers文件,找到“secure_path”一行。當值執行sudo命令時,”secure_path“中包含的路徑將被當做默認PATH變量使用。比如加入/usr/local/bin到其中:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
更改會即可生效。