Sudo
當我使用 sudo 時,為什麼這個目錄沒有被添加到我的 PATH 中?
我剛剛從原始碼編譯並安裝了 Apache Web 伺服器,現在我想將
apachectl
腳本添加到PATH
.我知道我需要將目錄添加到
root
使用者的目錄PATH
(因為腳本需要以 root 身份執行),所以我想我會嘗試添加以下行:
- 文件:
/root/.bashrc
# # add directory of apachectl to PATH PATH=$PATH:/usr/local/apache2/bin
我知道我添加的路徑是正確的,但是如果我執行命令:
sudo apachectl start
我得到:
sudo: apachectl: command not found
如何將此目錄添加到我的
PATH
?
將目錄添加到 sudo 的方法
PATH
(您發現它與root 的不同)是編輯sudoers
文件:sudo visudo
然後,找到這一行:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
並將您的目錄添加到它的末尾:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/apache2/bin"
或者,您可以只創建要執行的執行檔的符號連結並將它們
/usr/local/bin
直接放入:sudo find /usr/local/apache2/bin -type f -executable -exec ln -s {} /usr/local/bin/
為您的環境添加一個別名
sudo
是可行的,但有點不雅,更重要的是,它只適用於一個使用者。