Command-Line
使用 sudo 執行命令與以 root 使用者執行命令有什麼區別?
我對 linux 相當陌生,直到現在,一直認為
sudo <command>
與 exectuing<command>
as相同root
。我最近玩了一下這個ls
命令,並註意到一個輕微但令人困惑的區別。執行時
sudo ls -lap
(在根目錄中),我得到以下輸出:與當我
ls -lap
作為root
(或作為沒有sudo
的普通使用者)執行時:除了明顯但不重要的顏色差異之外,如果您仔細觀察,您會發現該
-p
選項(顯示/
後目錄)在links
使用sudo
.兩者之間有實際區別嗎?或者這是一個錯誤?
無論哪種方式,這是否意味著兩個命令的處理方式不同?
你
ls
是一個別名,並且sudo
不知道它。當您將使用者切換為 becomeroot
時,您的互動式 shell 會執行其啟動腳本並設置相關別名。嘗試執行
alias ls
asroot
,而不是viasudo
,以查看相應的命令。符號連結的輸出差異似乎是向輸出添加顏色的副作用:
ls -lp --color=tty /
在。
ls -lp --color=never /
將顯示相同的差異。