位元詩人 [FreeBSD] 系統使用教學:給予一般使用者 root 權限

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

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

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。