Bash:不帶 sudo 返回錯誤
我正在執行 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 中。執行 an
echo $PATH
以查看 shell 在哪些目錄中查找您輸入的命令。系統程序和管理實用程序通常駐留在
/sbin
和中/usr/sbin
。這些程序和實用程序可以由任何使用者執行(如果他們設置了適當的文件系統權限),但通常不會更改系統上的任何內容,除非以 root 身份執行。您可以使用以下內容將新目錄添加到 PATH 中:
export PATH=$PATH:/path/to/directory
如果需要,您可以以非 root 使用者身份執行
ifconfig
,apt-get
但除非您是 root,否則您將無法更改任何配置或安裝軟體包。
它們在裡面
/sbin
,/usr/sbin
任何人都可以執行它們。但是,這樣做可能有用,也可能沒有用。如果您沒有這些功能,那麼這些命令中的大多數都不會做太多事情。使用者root
傳統上具有所有功能。並且通常不會在普通使用者中執行搜尋 PATH/sbin
。/usr/sbin
ifconfig
作為普通使用者很有用,但您不會獲得所有功能。例如/sbin/ifconfig
,不帶參數,將列出所有網路介面。