每行 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/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、userdelgroupadd、groupmod、groupdelpwck、grpck預設最小長度 5 字元,建議改為 8 以上:
vi /etc/login.defs
# 修改
PASS_MIN_LEN 8
搭配 pam_pwquality.so 可強制複雜度(大小寫、數字、特殊字元)。
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
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:
/etc/shadow 權限為 600(chmod 600 /etc/shadow)。awk -F: '$3==0 {print $1}' /etc/passwd。pwck、grpck 檢查一致性。/usr/sbin/nologin)。chage 設定 max/warn)。