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

深入理解 Linux 用戶與群組機制:/etc/passwd、shadow、group、gshadow 四大核心檔案解析

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

核心概念:UID 與 GID

Linux 內核不識別用戶名,僅識別數值型 ID:

  • UID (User ID):0 = root 超級用戶;1–999 系統保留帳號;≥1000 普通用戶
  • GID (Group ID):群組識別碼,對應 /etc/group

/etc/passwd:用戶基本屬性庫

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

七欄位詳細說明

欄位名稱說明
1登入名用戶名稱,唯一
2密碼佔位符x 表示密碼存於 /etc/shadow;* 或 ! 表示鎖定
3UID用戶識別碼
4GID初始群組 ID(登入時的有效群組)
5GECOS備註資訊(全名、辦公室、電話等),供 finger 顯示
6家目錄登入後預設工作目錄
7Shell登入程式,/sbin/nologin 禁止互動登入

/etc/shadow:加密密碼與老化策略(僅 root 可讀,權限 000/600)

root:$6$salt$hash:19000:0:99999:7:::

九欄位解析

欄位含義備註
1登入名對應 passwd
2加密密碼$id$salt$hash,id=6 為 SHA-512
3最後修改日1970-01-01 起算天數
4最小間隔0 = 可隨時改;>0 防止立即改回舊密碼
5最大壽命99999 ≈ 永不過期
6警告天數過期前開始提醒
7寬限天數過期後仍可登入並強制改密碼
8帳號失效日絕對天數,到期完全禁用
9保留欄位暫無用途

/etc/group:群組定義

docker:x:999:user1,user2,user3

四欄位

  1. 群組名
  2. 群組密碼佔位符(x 表示使用 /etc/gshadow)
  3. GID
  4. 成員清單(逗號分隔,不含以此為初始群組的用戶)

/etc/gshadow:群組密碼與管理員

docker:!:admin1,admin2:user1,user2

四欄位

  1. 群組名
  2. 加密群組密碼(! 表示無密碼)
  3. 群組管理員(可用 gpasswd 管理成員)
  4. 群組成員

群組類型與切換機制

初始群組 vs 有效群組

  • 初始群組:/etc/passwd 第 4 欄 GID,登入時自動生效
  • 有效群組:當前建立檔案所屬群組,可用 newgrp groupname 臨時切換
  • 附加群組:/etc/group 第 4 欄列出的群組,授權存取權限用

查看與切換指令

groups              # 顯示當前用戶所有群組,第一個為有效群組
groups user1        # 查看指定用戶群組
id user1            # 完整 UID/GID/群組資訊
newgrp docker       # 切換有效群組至 docker(開啟新 Shell)
sg docker -c "cmd"  # 以 docker 群組身份執行單條命令

系統帳號 vs 普通帳號

特徵系統帳號普通帳號
UID 範圍1–999(視發行版而定)≥1000
Shell/sbin/nologin, /bin/false/bin/bash, /bin/zsh
家目錄通常無或 /var/lib/服務名/home/username
用途服務進程身份隔離人工登入操作

實務管理工具

  • vipw / vigr:鎖定檔案並用編輯器安全修改
  • pwck / grpck:檢查 passwd/shadow/group/gshadow 一致性
  • pwconv / grpunconv:passwd ↔ shadow 同步轉換
Copyright © Windows教程網 All Rights Reserved