類 Unix 系統口令文件格式高度一致,Linux 亦不例外。口令安全是系統防線第一道關卡,本文系統剖析 /etc/passwd、/etc/shadow 結構、影子機制啟用與密碼策略強化。
/etc/passwd)每行 7 欄位,冒號分隔:
username:passwd:uid:gid:comments:directory:shell
| 欄位 | 說明 |
|---|---|
| username | 登入名稱 |
| passwd | 密文或標記:x(已影子)、*(鎖定)、空值(無密碼) |
| uid | 用戶識別碼:0=root、1-10=系統/偽用戶、11-99=保留、100+=普通用戶 |
| gid | 預設群組 ID (/etc/group) |
| comments | 個人資訊 (GECOS) |
| directory | 家目錄 |
| shell | 登入 Shell |
採用 不可逆加密 (DES/MD5/SHA),但 /etc/passwd 全域可讀,算法公開,易遭離線暴力破解。
/etc/shadow)將密文移至 僅 root 可讀 的 /etc/shadow,/etc/passwd 對應欄位顯示 x。
9 欄位:
username:passwd:lastchg:min:max:warn:inactive:expire:flag
| 欄位 | 含義 |
|---|---|
| lastchg | 距 1970-01-01 最後修改密碼天數 |
| min | 兩次修改最小間隔天數 |
| max | 密碼最大有效天數 (99999=永不過期) |
| warn | 過期前警告天數 |
| inactive | 過期後寬限天數 (鎖定前仍可登入) |
| expire | 帳號禁用日期 (epoch days) |
| flag | 保留 |
RHEL 預設啟用。若未啟用:
# pwconv # passwd → shadow
# pwunconv # shadow → passwd (降級)
shadow-utils) 核心命令| 分類 | 命令 | 功能 |
|---|---|---|
| 轉換/驗證 | pwconv/pwunconv | 傳統↔影子轉換 |
pwck/grpck | 驗證 passwd/shadow/group 一致性 | |
| 用戶管理 (工業標準) | useradd/usermod/userdel | 增/改/刪用戶 |
groupadd/groupmod/groupdel | 增/改/刪群組 | |
gpasswd | 管理 /etc/group |
無論是否啟用 shadow,上述工具均正常工作。
預設 5 字元過弱,建議 ≥ 8:
# vi /etc/login.defs
PASS_MIN_LEN 8
login.defs 同時控制 PASS_MAX_DAYS、PASS_WARN_AGE 等策略,配合 chage 命令實現完整密碼週期管理。
pwconv 已執行,/etc/shadow 權限 600PASS_MIN_LEN 8、PASS_MAX_DAYS 90、PASS_WARN_AGE 7pwck、grpck 掃描異常usermod -L)pam_pwquality)口令文件結構透明、影子機制標準化、策略參數集中化 —— 掌握三要素,筑牢 Linux 認證防線。