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 則適合需要完全切換到其他用戶環境的情況。