Product SiteDocumentation Site

8.4. 使用者與群組資料庫

使用者清單通常儲存在 /etc/passwd 檔案內,把編碼後的密碼儲存在 /etc/shadow 檔案內。這兩個檔案都是純文字檔,以簡單的格式儲存,可以用文字編輯器讀取與修改。每個使用者佔一列,其欄位以冒號區隔 (“:”)。

8.4.1. 使用者清單:/etc/passwd

/etc/passwd 檔案內的欄位清單:
  • 登入,例如 rhertzog
  • password:就是密碼加密的單向函數 (crypt),使用 DESMD5SHA-256SHA-512。以特別符號 “x” 表示加密後的密碼儲存在/etc/shadow
  • uid:用於辨識個別使用者的不重複數字;
  • gid:使用者主要群組 (Debian 的預設值係為每個使用者建立一個群組) 的不重複號碼;
  • GECOS:通常儲存使用者全名的資料欄;
  • 登入資料夾,用於儲存使用者的個人檔案 (環境變數 $HOME 通常指向此處);
  • 登入時執行的程式。通常是命令解譯器 (shell),若指定為 /bin/false (不做任何事並立即回到控制),則使用者無法登入。

8.4.2. 隱藏與加密的密碼檔:/etc/shadow

The /etc/shadow 檔案含以下的欄位:
  • 登入;
  • 加密的密碼;
  • 管理密碼期限的欄位。

8.4.3. 修改既有的帳號或密碼

以下的命令允許修改使用者資料庫內的特定欄位資料:passwd 允許使用者更改自己的密碼,並更新 /etc/shadow 檔案;chfn (CHange Full Name),保留給超級使用者 (root) 專用,修改 GECOS 欄位。chsh (CHange SHell) 允許使用者變更自己的登入 shell,但祗限列名在 /etc/shells 之內;另一方面,管理者不受此限,且可設定任何 shell。
最後,chage (CHange AGE) 命令允許管理者變更密碼的有效期 (-l 使用者 選項列出現在的設定)。以 passwd -e 使用者 命令強迫密碼失效,要求使用者登錄時變更密碼才能繼續使用。

8.4.4. 帳號禁用

有時需要 “禁用一個帳號” (關閉某使用者),基於紀律考量、調查、或使用者太久未登入。被禁用的帳號表示該使用者不能登入或近用該機器。帳號還在機器內且檔案與資料都未被刪除木;祗是不能使用。以 passwd -l 使用者 (鎖定) 命令就能夠達成。以同樣的方式另個選項 -u (解鎖) 就可恢復該帳號。

8.4.5. 群組清單:/etc/group

群組列在 /etc/group 檔案內,單純的文字資料庫類似 /etc/passwd 檔案,包括以下的欄位:
  • 群組名稱;
  • 密碼 (選項):加入群組會用到 (以 newgrpsg 命令,見專欄 基本 在多個群組工作);
  • gid:不重複的群組辨識碼;
  • 成員清單:屬於此群組的使用者名稱清單,以逗點區隔。
addgroupdelgroup 命令可以新增或刪除群組。groupmod 命令修改群組的資訊 (其 gid 或辨識碼)。命令 passwd -g group 可變更群組的密碼,passwd -r -g group 命令可刪除群組的密碼。