本文介紹了Linux系統下/etc/passwd以及/etc/shadow兩個文件的格式。這兩個文件,一個是用戶帳戶信息數據的存儲,另外一個是用戶密碼信息以及密碼超期相關信息的存儲。 這兩個文件都是使用冒號作爲分隔符來分隔字段的。爲了安全起見,這兩個文件都只有超級管理員能夠讀寫。shell
1、 /etc/passwd 文件的格式,使用冒號分隔的7段用戶帳戶信息
account:password:UID:GID:GECOS:directory:shell (賬號:密碼:用戶ID:組ID:通常的信息:目錄:shell)安全
示例:root:x:0:0:root:/root:/bin/bashbash
- 帳戶名稱
- 密碼佔位符,用x代替
- 用戶標識
- 基本組標識
- GECOS,能夠理解爲用戶全名
- 用戶家目錄
- 用戶shell
2、/etc/shadow文件格式,使用冒號分隔的9段密碼相關信息
liuqing:$6$HE1uq5GI$1BUG8ACoUscfpvuW:18192:0:99999:7:::ide
1.login name 登陸名:必須是有效的帳戶名,且已經存在於系統中。加密
- date of last password change 加密了的密碼:加密了的密碼,這個密碼是加了salt這個隨機數的密碼。用$進行分隔的。這樣,就不會讓使用相同密碼的用戶獲得同一個加密的值。 而在驗證密碼時,將用戶輸入的密碼與salt(存在於shaodw文件對應用戶行中的)組合,與加密密碼進行一致性驗證。
- date of last password change 最後一次更改密碼的日期: 密碼上一次更改時的日期,這個日期是從1970年1月1日開始計算的。0表示用戶在下次登陸時應該更改密碼,空字段表示密碼老化功能被禁用。
- date of last password change 密碼的最小使用期限: 用戶更改完一次密碼後,最小須要多少天才能再次更改密碼。空字段或者0表示沒有最小密碼使用期限。
- maximum password age 密碼最長使用期限:用戶的密碼最長使用多少天后,必須進行更改。過了這個時間點後,密碼仍舊是有效的,但下次登陸的時候須要更改密碼。若是這個字段爲空則表示沒有最長密碼使用期限,沒有密碼行告警時間段,沒有密碼禁用時間段。若是最大密碼期限小於最小密碼期限,則用戶不能更改密碼。
- password warning period 密碼警告時間段:密碼過時以前,提早警告用戶的天數。空字段或者0表示沒有密碼警告期限。
7.password inactivity period 密碼禁用期:密碼過時(密碼最長使用期限)後,仍然接受此密碼的天數(在此期間,用戶應該在下次登陸時修改密碼)。密碼到期而且過了這個寬限期之後,使用當前密碼將不能登陸。空字段表示沒有強制密碼過時。
- account expiration date 帳戶過時日期:帳戶的過時的日期,表示從1970年1月1日開始的天數。注意,帳戶過時不一樣於密碼過時,帳戶過時時,用戶將不被容許登陸;密碼過時時,用戶將不被容許使用其密碼進行登陸。空字段表示帳戶永不過時。
- 保留字段:此字段保留以做未來使用。