在 Linux 系統中,切換特權帳號通常指的是從一個普通用戶(non-privileged user)切換到具有較高許可權的用戶,例如 root
。這種切換通常是為了執行需要較高許可權的操作,比如安裝軟體、修改系統設定或管理用戶帳號。
以下是實現這種切換的一些常見方式:
su
命令:su
(Substitute User)命令允許一個帳號切換到另一個帳號。如果不指定用戶名,則預設為 root
。這通常需要輸入目標帳號的密碼。
student$ su -
使用 su -
(包含-
)會模擬完整的登入,包括設定環境變數等。
sudo
命令:sudo
(Superuser Do)命令允許以其他帳號(通常是 root
)的身份執行命令。
使用 sudo
執行的命令將以 root
身份運行,但是只需要用戶輸入自己的密碼。
以下指令,使用 sudo 執行 whoami
指令,會得到 root 的輸出,代表切換成 root
身份執行。
student$ whoami
student
student$ sudo whoami
root
在 Enterprise Linux 中,一般使用者無法使用 sudo
指令切換,必須把該使用者加到 wheel
群組中才可以。
Linux 的安全模型是基於用戶和權限。每個行程都有一個相關聯的用戶,這決定了該行程可以存取哪些系統資源。當我們使用 su
或 sudo
命令時,實際上是建立一個新的 shell 行程,這個行程以目標用戶的身份運行。
su
:當使用 su
切換用戶時,系統會啟動一個新的 shell 並且用目標用戶的身份來運行它。這個新 shell 會有目標用戶的權限。
sudo
:sudo
命令運作不同。它會短暫地提升用戶的許可權來執行特定的命令,然後返回到原來的許可權等級。