sudo
和 su
是兩個常用的 Linux 命令,它們都與提升權限有關,但用途和行為有所不同。
sudo
- 用途:以其他用戶(通常是 root)的身份執行單個命令。
- 工作方式:
sudo
會提示當前用戶輸入自己的密碼(而不是 root 的密碼)。這樣可以讓授權用戶暫時提升權限來執行特定命令,而不需要知道 root 密碼。 - 例子:
sudo apt update
會以 root 權限執行apt update
命令。 - 安全性:
sudo
通常與/etc/sudoers
文件配合使用,該文件定義了哪些用戶有權使用sudo
以及可以執行哪些命令。這有助於控制權限和審計命令的使用情況。
su
- 用途:切換到其他用戶的身份,通常是 root。
- 工作方式:
su
會提示當前用戶輸入目標用戶(通常是 root)的密碼。成功後,會啟動一個新的 shell,該 shell 的權限與目標用戶相同。 - 例子:
su
會提示輸入 root 密碼,然後切換到 root 用戶的 shell。su username
會切換到指定用戶的 shell。 - 安全性:使用
su
時需要知道目標用戶的密碼,這意味著需要與其他用戶共享密碼,這在某些情況下可能不太安全。
總結
sudo
:執行單個命令時提升權限,使用當前用戶的密碼,適合授權有限的特定命令。su
:切換用戶身份(通常是 root),使用目標用戶的密碼,適合需要長時間以不同用戶身份運行的情況。
sudo
提供了更細緻的權限控制和審計功能,因此在多用戶系統中通常更受推薦。而 su
則適合需要完全切換到其他用戶環境的情況。