FlossDoc: 请协力 GPLv3 的中文翻译工作。
File:/etc/shadow
FlossDoc,自由中文開源知識庫
< File: | etc
檔案 /etc/shadow 大部份 Unix/Linux 系統使用 shadow password 時儲存使用者密碼和相關安全資料的檔案。和 /etc/passwd 不同,它的檔案權限 (file mode) 一般會設為只有超級使用者才可以讀取,以減低使用者密碼受到攻擊的機會。
其格式是很簡單的文字檔,一般可以直接使用任何文字編輯器修改,但為安全起見,請使用系統提供的工具如 passwd、chage 和 vipw -s 等改變此檔案的內容。
目录 |
[编辑]
結構與內容
shadow 的格式和 /etc/passwd 差不多,每一列代表一個使用者。欄與欄之間以冒號 (“:”) 分隔。每一列的格式如下:
username:encrypted-password:last-change:mindays:maxdays:warndays:inactivedays:expire-date:reserved
以下是個典型 shadow 檔案的內容:
root:$6$x6N8vnBZ$JxRu6uVs8RmCH0eVBBXnFIxDjYQNGheXbxsEfr2paBGEUMtEi/1q95WIiA4pF0.3D.xo83CNaDyNHLDXRVLhl1:14770:0:99999:7::: daemon:*:14728:0:99999:7::: bin:*:14728:0:99999:7::: sys:*:14728:0:99999:7::: sync:*:14728:0:99999:7::: games:*:14728:0:99999:7::: man:*:14728:0:99999:7::: lp:*:14728:0:99999:7::: mail:*:14728:0:99999:7::: www-data:*:14728:0:99999:7::: nobody:*:14728:0:99999:7::: backup:*:14728:0:99999:7::: list:*:14728:0:99999:7::: jrandom:$1$2ttTGtcK$/vrDDgJUgbXRl.YbnOM8o1:12800:0:99999:7::: john:$1$a2cdx7tc$okBGwL7FcJ0sWnTBaZ6t/.:12714:0:99999:7::: mary:$6$9mXh3gNo$0Y6RoPw6LJvoDqJPEea4huU8Luu9QmCMFzglH7pZcsFFkRx.ikE88nelrbRC0.jwiT6ADLYyJtpwr1W.xyIH.0:14731:0:99999:7::: peter:$6$CONbfu09$1lq56vt9zaHrpth3Gq.m3ZnxD.h1PGLmNUhqtIwBx6NhUk.9II6CHm/bBPURMqpCUbnJ4goZDZ9pkgA72of2r/:14789:0:99999:7:::
每一欄的用途以下:
- 使用者名稱 (Username) - 登入和識別使用者的名稱。
- 已加密的密碼 (Encrypted password) - 如其名,這欄是存放已加密的使用者密碼。特別留意如果這欄是空的,表示無需輸入密碼就可以登入這使用者。這在正常系統是絕對不可能出現的。唯一原因就是系統已被人入侵。如果這欄第一個字元為嘆號 “!”或星號 “*” 表示此帳戶已被鎖定不能登入。詳見 《密碼演算法》。
- 密碼最後更改日期 (Last change) - 由 Epoch 日期 1970 年 1 月 1 日至密碼最後更改日期的日數。每次密碼被更改時系統會自動更新此值詳情請參閱 《強迫使用者定期更改密碼 - 設定密碼最後更改日期》。
- 密碼有效最小日數 (Minimum days) - 密碼由最後更改後最小要多少日才可以被更改。一般預設為 0 日,即使用者可以隨時更改密碼。詳情請參閱 《強迫使用者定期更改密碼 - 設定密碼最短有效期》。
- 密碼有效最大日數 (Maximum days) - 密碼由最後更改後最長多少日後要被更改。詳情請參閱 《強迫使用者定期更改密碼 - 設定密碼最長有效期》。
- 警告日數 (Warning days) - 密碼過期前多少日前發出警告。一般預設為 7 日。詳情請參閱 《強迫使用者定期更改密碼 - 設定密碼有效期警告日數》。
- 不活躍日數 (Inactive days) - 密碼過期後使用者多少日無登入會被認為是不活躍並鎖定帳戶。詳情請參閱 《強迫使用者定期更改密碼 - 設定使用者不活躍限期》。
- 有效日期 (Expire date) - 指定帳戶過期的日期,過此日子後帳戶將被銷定而不能登入。以由 Epoch 日期 1970 年 1 月 1 日至過期日期的日數來表示。詳情請參閱 《設定使用者帳戶有效日期》。
- 保留 (Reserved) - 保留作將來使用
[编辑]
密碼演算法
如果密碼項首個字元為英文字母、數目字、點號 (".") 或錢線 ("/") (例如: QV0K5p9TdvUIQ,表示密碼使用傳統的 Unix crypt。首兩個字元 ("QV") 為 12 位元的 salt,而餘下 11 字元為密碼的 unix crypt hash。unix crypt 演算法現在己非常弱的演算法,應該已被淘汰。
如果密碼項首個字元為錢號 ("$")' (例如: $1$2ttTGtcK$/vrDDgJUgbXRl.YbnOM8o1,表示密碼使用較新的格式。此格式分三欄,每欄以錢號分隔。首欄為演算法識別碼 algorithm identifier[1]:
- 1 - 以 MD5 為基礎的 cryptographic hash function,由 Poul-Henning Kamp 設計。主要將使用者的密碼和隨機產生的 salt 合併並計算其 MD5 hash 值,然而再將使用者的密碼、salt 和上次計算出來的 MD5 hash 值合併並再計算其 MD5 hash 值,重覆相同運算一千次,最終的 hash 值就是密碼 hash。
- 2/2a (很少用) - 以 Blowfish 為基礎的 cryptographic hash function,由 Niels Provos 和 David Mazieres 設計並在 1999 年 USENIX 發表
- 5 - 以 SHA-256 為基礎的 cryptographic hash function,由 Red Hat 的 Ulrich Dreppr 設計。
- 6 - 以 SHA-512 為基礎的 cryptographic hash function,由 Red Hat 的 Ulrich Dreppr 設計。
第二欄為 salt ("2ttTGtcK"),第三欄則為密碼 hash ("/vrDDgJUgbXRl.YbnOM8o1")
[编辑]
相關工具
- passwd - 更改使用者密碼
- chage - 更改使用者帳戶過期和密碼有效期設定
- vipw -s - 編輯 /etc/shadow 檔案
[编辑]
相關檔案
- /etc/passwd - 記錄 Unix/Linux 使用者資料的檔案。
- /etc/group - 記錄 Unix/Linux 使用者群組的檔案。
- /etc/gshadow - 大部份 Unix/Linux 系統使用 shadow password 時儲存使用者群組密碼和相關資料的檔案。
[编辑]
參考資料
- ↑ Wikipedia Library Function crypt(3). crypt (Unix). (於 2010-06-29 日讀取)
[编辑]
請參看
[编辑]
外部連結
- 維基百科: shadow password - 維基百科對 shadow password 的說明
- 維基百科: crypt (Unix) - Library Function crypt(3) - 維基百科 crypt (Unix) 的 Library Function 對密碼演算法有詳細的說明。
- GNU/Linux Manpage: shadow(5) - encrypted password file


[SuSE][OpenSuSE] - GNU/Linux 中的 shadow(5) 說明文件
- NixCraft: Understanding /etc/shadow file (2006-02-23)

