1. 程式人生 > >執行sudo命令時command not found的解決辦法

執行sudo命令時command not found的解決辦法

解決 這就是 t權限 子進程 lock 包括 defaults 什麽 調用

問題的原因: 在編譯sudo包的時候默認開啟了- -with-secure-path選項。

方法1: sudo vim /etc/sudoers,並在文件內增加這麽一行:Defaults secure_path=”/bin:/usr/bin:/usr/local/bin:…”, 把要用的命令path包括進去。

在非root下,可以執行很多命令。

在root命令下,卻提示 command not found。例如 使用vim
現象: 當我們用sudo來執行cd、ls等命令時,會出現command not found的提示 在執行Linux命令時,如果在其前面加上sudo,就表示以root權限執行。但是這其實是有一個前提的,就是只有那些Linux內置系統命令才可以用如此的形式來執行,而對於Shell內置命令或其他用戶自定義命令、別名等,是不能用sudo來使用root權限的。為什麽呢?詳細說一下sudo幕後隱藏的過程才能明白。

因為當在Linux下用sudo執行某一命令時,是在原進程(parent process)的基礎上fork出來一個子進程(child process),這個子進程是以root權限執行的。然後在子進程中,執行你在sudo後面跟的命令。

在子進程中是無法調用涉及到父進程的狀態的一些命令的,所以非系統內置命令會被拒絕。這就是為什麽會出現command not found的提示。

執行sudo命令時command not found的解決辦法