Linux系統使用sudo遇到command not found的情況處理
阿新 • • 發佈:2018-04-02
Linux command not found 一般通過編譯安裝或二進制拷貝的軟件路徑會選擇自定義路徑,以nodejs軟件為例,如:/usr/local/node6.10/bin。這個時候在使用sudo命令運行的時候會提示command not found。出現這個問題的原因是/etc/sudoers配置文件中有這麽一個配置:
79 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
由此可知,默認路徑裏面是沒有我們自定義安裝軟件的路徑的,所以node這個命令是找不到的。我們只需要將node的路徑添加到這個一行後面即可。
79 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/node6.10/bin
另外還有幾個解決辦法:
1): 用命令的絕對路徑。
2): 使用sudo的env選項,像這樣sudo env PATH=$PATH cmd.sh。
3): 把腳本拷貝或鏈接到系統$PATH中。
4): 重新編譯sudo,不帶–with-secure-path選項了.(終極解決辦法)。
以上方法請自行參考是使用哪一種,我比較喜歡最開始介紹的那種,比較可控,使用起來也比較方便。
Linux系統使用sudo遇到command not found的情況處理