1. 程式人生 > >Linux系統使用sudo遇到command not found的情況處理

Linux系統使用sudo遇到command not found的情況處理

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的情況處理