使用sudo執行命令的時候提示找不到命令

2021-08-01 21:51:15 字數 447 閱讀 1673

from : 

事出有因, 源自使用原始碼編譯 nginx , 在 /usr/local/sbin/ 目錄下建立了nginx 啟動的符號鏈結 , 執行 sudo nginx 的時候提示找不到命令, 但是使用普通使用者身份和root使用者身份執行的時候均能找到命令. 猜測原因可能出在 $path 環境變數上.

於是執行 sudo env

發現 path 果然有問題 , /usr/local/sbin/ 不在 path 裡.

搜了一下 , 發現原因是這樣的.

在 /etc/sudoers 這個檔案中有一項是 secure_path , 當使用sudo執行命令的時候 , path 變數會被重置為 secure_path 的值. 而使用sudo執行命令是否重置環境變數則是由 /etc/sudoers 檔案中的 env_reset 這一項來決定 . 據說可以將 這一項設定為 !env_reset , 這個我沒驗證.

使用sudo執行複雜linux命令的方法

當使用sudo命令來執行乙個linux命令時,我們希望這個linux命令能以root身份執行,但有時候都會遇到 permission denied 的錯誤,結果發現是linux命令中只有部分語句是按root使用者執行的。比如,如果以root身份執行下面的命令,沒有任何問題 echo 12000 pr...

sudo命令的使用

在linux系統中,有些普通使用者需要借助root帳號來執行一些操作,但我們並不能把root密碼給普通使用者,就有了sudo sudo可以臨時切換到指定帳號進行操作 使用方法 sudo u 使用者帳號 需要執行的命令 切換到root時,可以直接執行sudo 執行命令 即可 sudo l 列出所有可以...

sudo命令使用

sudo命令允許系統管理員分配給普通使用者一些合理的許可權,不需要普通使用者知道超級使用者的密碼,就能執行一些超級使用者才能完成的任務。sudo命令許可權是受限制的,su命令許可權是無限制的。sudo的配置檔案 etc sudoers 例如 讓普通使用者test來訪問 etc shadow 可以在 ...