歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux教程分享:如何為sudo命令定義PATH環境變量

Linux教程分享:如何為sudo命令定義PATH環境變量

日期:2017/2/28 14:28:32   编辑:Linux教程

問題:我安裝了一個程序到/usr/local/bin目錄下,這個程序需要root權限才能執行,當我用sudo去執行它時,收到"sudo: XXXXX: command not found"的錯誤提示,不知道為什麼/usr/local/bin沒有被包含到PATH環境變量下面來,我該如何解決這個問題?

當你使用sudo去執行一個程序時,處於安全的考慮,這個程序將在一個新的、最小化的環境中執行,也就是說,諸如PATH這樣的環境變量,在sudo命令下已經被重置成默認狀態了。所以當一個剛初始化的PATH變量中不包含你所要運行的程序所在的目錄,用sudo去執行,你就會得到"command not found"的錯誤提示。

要想改變PATH在sudo會話中的初始值,用文本編輯器打開/etc/sudoers文件,找到"secure_path"一行,當你執行sudo 命令時,"secure_path"中包含的路徑將被當做默認PATH變量使用。

添加所需要的路徑(如 /usr/local/bin)到"secure_path"下,在開篇所遇見的問題就將迎刃而解。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

這個修改會即刻生效。

Ubuntu的sudo與su命令使用與開啟root帳戶 http://www.linuxidc.com/Linux/2008-01/10685.htm

sudo: sorry, you must have a tty to run sudo http://www.linuxidc.com/Linux/2012-11/75153.htm

Linux配置sudo權限 http://www.linuxidc.com/Linux/2012-10/71795.htm

sudo配置臨時取得root權限 http://www.linuxidc.com/Linux/2012-09/69525.htm

Linux下解決用戶不能執行sudo的方法 http://www.linuxidc.com/Linux/2012-07/64694.htm

Linux系統管理員不可不知的命令:sudo http://www.linuxidc.com/Linux/2013-07/87855.htm

sudo使用之實現權限分配 http://www.linuxidc.com/Linux/2014-02/96996.htm

Copyright © Linux教程網 All Rights Reserved