Linux 身份認證的資訊,都放在 /etc/passwd 和 /etc/shadow,很多應用程式也會讀取這 2 個檔案,例如 ls。
/etc/passwd 結構:用戶資訊
User-Name:Encrypted-Password:UID:GID:Comment:$HMOE:$SHELL
範例:apacheserver:x:500:500::/home/apacheserver:/bin/bash
User-Name:
apacheserver
Encrypted-Password:
x // 密碼是放在 /etc/shadow,因為很多程式會讀這個內容,放在此處風險太高。
UID:
500
GID:
500
Comment(GECOS):
$HOME:
/home/apacheserver
$SHELL:
/bin/bash
/etc/shadow 結構:密碼資訊
欄位 1:欄位 2:欄位 3:欄位 4:欄位 5:欄位 6:欄位 7:欄位 8:欄位 9
欄位 1:使用者名稱
欄位 2:加密後的密碼
欄位 3:最近一次更改密碼日期
欄位 4:限制密碼變更天數(PASS_MIN_DAYS),0 表示無限制
欄位 5:限制密碼可使用天數(PASS_MAX_DAYS)
欄位 6:密碼過期前警告天數(PASS_WARN_AGE)
欄位 7:密碼過期後寬限時間(inactive)
欄位 8:帳號失效日期(expiration)
欄位 9:保留
補充:使用date計算日期,因為沒有excel可以用XD。
# date -d '19700101 15631 days'
四 10月 18 00:00:00 CST 2012
範例:apacheserver:$1$eSDh1dqo$1rEoTHCvdrVXvQQEONymx0:15631:5:30:7:3:15705:
使用者名稱:
apacheserver
加密後的密碼:
$1$eSDh1dqo$1rEoTHCvdrVXvQQEONymx0
最近一次更改密碼日期:
15631 // 這裡顯示的是天數,日期為 2012-10-18,從 1970-01-01 開始計算
限制密碼變更天數:
5 // 表示到 2012-10-23 都不能變更密碼。
限制密碼可使用天數:
30 // 表示 2012-11-17 以前必須變更密碼,不然原密碼就會失效。
密碼過期前警告天數:
7 // 表示 2012-11-10 至 2012-11-17,這 7 天只要登入系統,就會看到警告訊息。
密碼過期後寬限時間:
3 // 表示更改密碼的日期延後 3 天至 2012-11-20。
帳號失效日期:
15705 // 密碼失效日期為 2012-12-31,這裡顯示的是天數,從 1970-01-01 開始計算。
ls 使用 /etc/passwd 範例:
# ll
drwx------. 29 apacheserver apacheserver 4096 Oct 23 11:15 apacheserver
# vim /etc/passwd
apacheserver:x::500::/home/apacheserver:/bin/bash // 拿掉 uid
# ll
drwx------. 29 500 apacheserver 4096 Oct 23 11:15 apacheserver