Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 使用者與群組管理完整實戰教學

編輯:Linux 系統常見問題解答

使用者與群組管理是 Linux 系統權限控制的基石。本文深入解析 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 四大核心配置檔結構,並完整說明使用者建立、修改、刪除、密碼策略與骨架目錄機制。

一、核心配置檔深度解析

1. /etc/passwd - 使用者資訊檔

每行 7 欄位,以 : 分隔:

欄位名稱說明
1使用者名稱登入帳號
2密碼標誌現代系統均為 x,實際雜湊密碼在 /etc/shadow
3UID使用者識別碼:0=root、1-999=系統帳號、1000+=一般使用者
4GID初始群組 ID
5描述資訊GECOS 欄位,通常為真實姓名、聯絡資訊
6家目錄登入後預設工作目錄:一般 /home/用戶名、root /root
7登入 Shell/bin/bash、/sbin/nologin 等

權限:-rw-r--r-- (全域可讀),故密碼雜湊移至 shadow 保護。

2. /etc/shadow - 影子密碼檔

權限 ---------- (僅 root 可讀)。9 欄位:

欄位說明
1使用者名稱
2加密密碼 (SHA-512 等),!! 或 * 表示鎖定/無密碼
3最後修改密碼日期 (自 1970-01-01 起的天數)
4最小密碼齡期 (天) - 幾天後可改密碼
5最大密碼齡期 (天) - 強制變更週期,99999 為永久
6密碼過期前警告天數
7密碼過期後寬限天數 (0=立即鎖定、-1=永不鎖定)
8帳號失效日期 (天數戳),設定後優先於欄位 5
9保留欄位

時間戳轉換:

# 時間戳 → 日期
date -d "1970-01-01 17105 days"

# 日期 → 時間戳
echo $(( ($(date -d "2024-01-01" +%s) - $(date -d "1970-01-01" +%s)) / 86400 ))

3. /etc/group - 群組資訊檔

4 欄位:群組名稱、密碼標誌 (通常 x)、GID、附加成員清單 (逗號分隔)。

4. /etc/gshadow - 群組影子檔

4 欄位:群組名稱、群組密碼、管理者帳號、附加成員。不建議使用群組密碼機制,統一由 root 管理。

二、使用者相關檔案與目錄

項目路徑/權限說明
一般使用者家目錄/home/用戶名/ (700, 擁有者:用戶:用戶)私密資料區
root 家目錄/root/ (550, root:root)系統管理員專用
使用者信箱/var/spool/mail/用戶名/建立使用者自動產生
骨架目錄/etc/skel/新使用者家目錄自動複製此處內容 (.bashrc, .bash_profile 等)

三、使用者管理核心指令

useradd - 建立使用者

useradd [選項] 使用者名稱
選項功能
-u UID指定 UID
-d 目錄指定家目錄
-c "描述"設定 GECOS 欄位
-g 群組指定初始群組 (GID)
-G 群組1,群組2指定附加群組
-s Shell指定登入 Shell
-m強制建立家目錄 (預設行為)
-M不建立家目錄
-r建立系統帳號 (UID < 1000)

passwd - 設定密碼

passwd 使用者名稱    # root 為他人設定
passwd               # 自己修改密碼
echo "密碼" | passwd --stdin 使用者名稱  # 腳本化批量設定

usermod - 修改使用者屬性

usermod -L 使用者名稱   # 鎖定帳號 (在 shadow 第2欄前加 !)
usermod -U 使用者名稱   # 解鎖
usermod -aG 新群組 使用者名稱  # 追加附加群組 (關鍵 -a 參數)
usermod -d 新家目錄 -m 使用者名稱  # 遷移家目錄並複製內容

userdel - 刪除使用者

userdel -r 使用者名稱  # 連同家目錄、信箱一併刪除

群組管理指令

groupadd 群組名稱           # 建立群組
groupadd -g GID 群組名稱      # 指定 GID
groupmod -n 新名稱 舊名稱     # 重命名
groupdel 群組名稱             # 刪除群組 (需先移除成員)
gpasswd -a 使用者 群組        # 加入群組
gpasswd -d 使用者 群組        # 移出群組

四、預設值配置檔

  • /etc/default/useradd:useradd 預設值 (家目錄前綴、預設 Shell、骨架目錄、建立郵箱等)
  • /etc/login.defs:密碼策略預設值 (PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_WARN_AGE、UID/GID 範圍、CREATE_HOME 等)
Copyright © Windows教程網 All Rights Reserved