Bash

Bash:不帶 sudo 返回錯誤

  • July 19, 2019

我正在執行 Kali Linux Live,並且我在很長一段時間內都以 root 使用者身份使用該系統,然後在網上看到一篇文章告訴你不要使用 root 作為預設帳戶,而是應該創建一個低權限的使用者。我最終這樣做了,一切都很好,直到我嘗試執行ifconfig,我收到錯誤:bash: ifconfig: command not found

我嘗試執行sudo apt-get install ifconfig,但它返回的ifconfig已經是最新版本。我有點困惑,所以我嘗試sudo ifconfig了,因為我必須使用sudo來執行apt-get。果然,sudo ifconfig工作,以及我需要執行的任何其他返回類似錯誤的命令都可以使用sudo.

所以我的問題是我需要執行的程序在我安裝它們時儲存(我認為)在根系統中sudo apt-get install,因此非root使用者無法訪問它們?我不確定這是否正確。閱讀手冊sudo,我知道它以 root(或其他一般使用者)身份執行命令,但這是否意味著在 root 的系統中“執行輸出”?如果是這樣,除了授予他們管理員權限之外,我還能以低權限使用者身份執行命令嗎?

感謝您的支持!

您無法以非 root 使用者身份找到這些命令的原因是它們可能不在您的 PATH 中。執行 anecho $PATH以查看 shell 在哪些目錄中查找您輸入的命令。

系統程序和管理實用程序通常駐留在/sbin和中/usr/sbin。這些程序和實用程序可以由任何使用者執行(如果他們設置了適當的文件系統權限),但通常不會更改系統上的任何內容,除非以 root 身份執行。

您可以使用以下內容將新目錄添加到 PATH 中:

export PATH=$PATH:/path/to/directory

如果需要,您可以以非 root 使用者身份執行ifconfigapt-get但除非您是 root,否則您將無法更改任何配置或安裝軟體包。

它們在裡面/sbin/usr/sbin 任何人都可以執行它們。但是,這樣做可能有用,也可能沒有用。如果您沒有這些功能,那麼這些命令中的大多數都不會做太多事情。使用者root傳統上具有所有功能。並且通常不會在普通使用者中執行搜尋 PATH /sbin/usr/sbin

ifconfig作為普通使用者很有用,但您不會獲得所有功能。例如/sbin/ifconfig,不帶參數,將列出所有網路介面。

引用自:https://unix.stackexchange.com/questions/530883