前言
root 帳號有系統的最高權限,不慎使用可能會對系統造成損害。所以平日使用系統時不應使用 root,只有在執行系統管理任務才切換至 root。本文說明從一般使用者切換到 root 的方式。
說明
Unix 是多使用者系統,所以系統上會有多個使用者 (user)。像是在安裝系統時會順帶建立一個使用者帳號。這些帳號不一定有真實使用者,有些只是給應用程式使用的帳號。除了使用者外,Unix 使用群組 (group) 來管理使用者。同一群組內的使用者共享相同權限。
將使用者提升至 root 的方式可能是直接以 root 登入或是將使用者加入 root 所在的群組。傳統上 root 的群組是 wheel 。
使用 su 切換帳號
su(1) 用來切換使用者,常用來切換至 root。在預設情形下,想切換到 root 的使用者要加入 wheel 群組。使用以下指令將 user 加入 wheel 群組:
# pw user mod user -G wheel
請將 user 替換成實際的使用者帳號。
使用 su 的缺點在於使用者需要知道 root 的密碼才能切換帳號。root 密碼越少人知道越好。通常只有系統管理者自身才會使用 su 來切換 root。
使用 sudo 執行系統管理指令
sudo(1) 用來短暫地提升使用者權限,僅在執行完該指令後就回復至原本的使用者。而且 sudo 可以控管要給予使用者提升那些指令的權限,會比 su 好用。
一開始系統沒有 sudo,需要另行安裝:
# pkg install sudo
修改 sudo 權限時不要直接修改設定檔,而要用 visudo 指令:
# visudo
visudo 實際上使用的編輯器是 vi(1)。沒用過 vi 的話,連移動游標都會有困難。以下是 vi 的基本使用方式:
j:向下捲動一行k:向上捲動一行l:向右移動一格h:向左移動一格- Ctrl +
f:向下捲動一頁 - Ctrl +
b:向上捲動一頁 i:插入字元。會切換成插入模式- Ctrl +
c:中斷操作。像是中斷插入模式 x刪除一個字元- Shift +
:後按x:存檔離開 - Shift +
:後換q!:不存檔離開
輸入 visudo 後,找到這一行文字:
# %wheel ALL=(ALL) ALL
將游標移動到行首,然後按兩次 x 移除註解。這個動作會開啟 wheel 群組使用 sudo 的權限。
輸入 shift + :,然後按 x 儲存。之後即可使用 sudo 執行系統管理任務。像是以下指令用 sudo 安裝 nano(1) 編輯器:
$ sudo pkg install nano
由於 vi 使用較為困難,需要花時間學習。建議 Unix 初學者可以安裝 nano,日後要編輯設定檔時會比較簡單。僅有 visudo 等少數情境非得使用 vi 不可。