next up previous contents
Next: 2.4 パスワードエディター /usr/ucb/vipw Up: 2. ユーザ登録・ユーザ管理 Previous: 2.2 パスワードファイル /etc/passwd の構造

2.3 シャドウファイル /etc/shadow の構造

 シャドウファイルは、ユーザのパスワードを暗号化して格納するファイルです。このファイルは、一般のユーザからは読めず、スーパーユーザしか読むことができません。
 このような面倒な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* の書かれているユーザは、ログインが許可されていないことを表しています。
 この欄が空の場合は、パスワードを入れなくてもログインできます。
 ここに * を書いておくと、ルートがパスワードを設定するまでログインできなくなります。
 実際のユーザ登録では、ここに * を書いておき、後で述べる passwd コマンドでパスワードを設定します。
 
 第4〜第8フィールドは、パスワード変更に関する管理を行うフィールドです。同じパスワードをいつまでも使い続けていると、パスワードを破られる原因となります。一定の時間が過ぎたら変更する習慣を付けさせることも重要です。このようなことをパスワードのエージング(aging)と言います。
 これらのフィールドは省略することもできます。以前のように、いつまでもパスワード変更しなくてもかまわないようにもできます。
 それぞれのフィールドを省略した場合の意味は、次のようになります。
 
 第4フィールド: いつでもパスワードの変更ができる。
 第5フィールド: いつまでもパスワード変更の必要なし。
 第6フィールド: 警告しない。
 第7フィールド: ログインしなくても、パスワードは無効にならない。
 第8フィールド: 失効しない。
 第3フィールドには、1970年からの通しの日付が入りますが、直接入力するときには、計算できないので、適当な数値を入力してから、後でパスワードを変更すれば、正しい値に変更してくれます。

 


Noriyo Kanayama