Linux下爲sudo命令定義PATH環境變量

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

更改會即可生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章