シャドウファイルは、ユーザのパスワードを暗号化して格納するファイルです。このファイルは、一般のユーザからは読めず、スーパーユーザしか読むことができません。
このような面倒な2重化をしたのは、
パスワードファイルを読めなくすると、一般ユーザがログインできなくなってしまう。
パスワードファイルを公開すると、最近の高性能なコンピュータを使うことで、暗号を解読することができてしまう。
という問題があるからです。
このファイルの内容例を掲げます。
root:/F4Dujeq2Pp6k:10337:::::: root2:xHNuzvZ9XXhYA:10440:::::: daemon:NP:6445:::::: bin:NP:6445:::::: sys:NP:6445:::::: adm:NP:6445:::::: lp:NP:6445:::::: smtp:NP:6445:::::: uucp:NP:6445:::::: nuucp:NP:6445:::::: listen:*LK*::::::: nobody:NP:6445:::::: noaccess:NP:6445:::::: user10:*LK*:::::::
シャドウファイルの各行は、パスワードファイルの各行に1対1に対応しています。
各フィールドの意味は、次の通りです。
第1フィールド: ユーザ名(ログイン名) 第2フィールド: 暗号化されたパスワード 第3フィールド: パスワードの最終変更日 第4フィールド: 変更可能最短期間(この期間を越えないと変更不可) 第5フィールド: 未変更可能最長期間(この期間を越えたら変更必要) 第6フィールド: 警告日(上記期日の何日前に警告するか) 第7フィールド: インアクティブ(ログインしないと無効になる日数) 第8フィールド: 失効日(アカウント失効までの日数) 第9フィールド: フラグ(未使用)第2フィールド(パスワードフィールド)に、NPや、*LK* の書かれているユーザは、ログインが許可されていないことを表しています。
第4フィールド: いつでもパスワードの変更ができる。 第5フィールド: いつまでもパスワード変更の必要なし。 第6フィールド: 警告しない。 第7フィールド: ログインしなくても、パスワードは無効にならない。 第8フィールド: 失効しない。第3フィールドには、1970年からの通しの日付が入りますが、直接入力するときには、計算できないので、適当な数値を入力してから、後でパスワードを変更すれば、正しい値に変更してくれます。