前言
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
不可。