Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 密碼檔案安全深度解析:/etc/passwd、/etc/shadow 與影子密碼機制

編輯:Linux 教學

傳統密碼檔 /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(/bin/bash、/bin/false、/sbin/nologin)

影子密碼機制 /etc/shadow

為防止 /etc/passwd 全域可讀導致密碼雜湊被暴力破解,Linux 採用影子機制:將真實雜湊移至 /etc/shadow(僅 root 可讀),/etc/passwd 的密碼欄位改為 x。

/etc/shadow 每行 9 個欄位:

username:passwd:lastchg:min:max:warn:inactive:expire:flag
欄位說明
lastchg自 1970-01-01 起至上次修改密碼的天數
min兩次修改密碼間隔最少天數
max密碼有效最大天數(99999=永不過期)
warn密碼過期前警告天數
inactive過期後寬限天數(帳號鎖定前)
expire帳號停用日期(自 1970 起的天數)
flag保留欄位

啟用/停用影子密碼

pwconv   # 啟用影子密碼(passwd → shadow)
pwunconv # 停用影子密碼(shadow → passwd,不建議)

影子工具套件

  • 帳號管理:useradd、usermod、userdel
  • 群組管理:groupadd、groupmod、groupdel
  • 一致性檢查:pwck、grpck

強化密碼最小長度

預設最小長度 5 字元,建議改為 8 以上:

vi /etc/login.defs
# 修改
PASS_MIN_LEN 8

搭配 pam_pwquality.so 可強制複雜度(大小寫、數字、特殊字元)。

系統預設帳號與群組對照表

標準使用者(/etc/passwd 片段)

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System:/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

標準群組(/etc/group 片段)

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,www-data
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
floppy:x:25:
voice:x:29:
cdrom:x:30:
tape:x:31:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
staff:x:50:
users:x:100:
nogroup:x:65534:

安全稽核重點

  1. 確認 /etc/shadow 權限為 600(chmod 600 /etc/shadow)。
  2. 檢查是否有 UID 0 的非 root 帳號:awk -F: '$3==0 {print $1}' /etc/passwd。
  3. 定期執行 pwck、grpck 檢查一致性。
  4. 停用無用系統帳號(將 shell 設為 /usr/sbin/nologin)。
  5. 強制密碼複雜度與定期輪換(chage 設定 max/warn)。
Copyright © Windows教程網 All Rights Reserved