Linux豆知識 180

「/etc/shadow」ファイル

このエントリーをはてなブックマークに追加
今回は、「/etc/shadow」ファイルについて見てみましょう。

「/etc/shadow」ファイルは、シャドウパスワードの仕組みで利用されています。シャドウパスワードとは、パスワードのデータを一般ユーザから見えないようするための工夫です。元々、パスワードは「/etc/passwd」ファイルに記述されていましたが、「/etc/passwd」ファイルはシステムのユーザであれば誰でも読み取りができてしまいます。

そこで、パスワードを「/etc/shadow」ファイルに格納し、「/etc/passwd」ファイルにはパスワードを記述しないという形をとっています。「/etc/shadow」ファイルは所有者(通常はroot)以外は読みとることができないようになっており、一般ユーザでは参照できないようにパーミッションが設定されています。

○/etc/shadowの内容(抜粋)
root:$6$Gqkj$ineQdmecDZmoHTIVdMujC2xc68xQ3MpYMts:15500:0:99999:7:::
bin:*:15204:0:99999:7:::


apache:!!:15500::::::


user1:$6$BTGO$QLWMfhH10k1nNpEOtYSRVbjEV4csksqrs0:16636:0:90:7:::

各行に、パスワード情報が記述されています。「:」で各情報が区切られています。記法は以下の通りです。

第1フィールド:ユーザ名
第2フィールド:パスワード
第3フィールド:パスワードを最後に変更した日
第4フィールド:変更可能最短期間
第5フィールド:未変更可能最長期間
第6フィールド:未変更時警告日
第7フィールド:ログインしない場合に無効になる日数
第8フィールド:アカウントが失効になるまでの日数
第9フィールド:フラグ

第2フィールドのパスワードは暗号化されていて、一見しただけでは元のパスワードは分からない文字列になっています。第2フィールドが「*」になっている場合は、パスワードが設定されておらず、そのユーザはログインできません。これは、システムがプログラムを動作させるために作成したユーザなどに使用されます。

パスワード欄の頭に「!!」を付けると、「アカウントロック」という状態になります。この場合は、そのユーザはログインできなくなります。

○アカウントロックの例
user1:!!$6$BTGO$QLWMfhH10k1nNpEOtYSRVbjEV4csksqrs0:16636:0:90:7:::

アカウントロックは、passwdコマンドに-lオプションを付けることで実現できます。第2フィールドが「!!」だけとなっている場合には、パスワードが未設定ということになります。

第4フィールドから第8フィールドの内容は、usermodコマンドやchageコマンドなどを実行することで設定できます。

現在ではほとんどのディストリビューションでシャドウパスワードを採用しています。LPICの試験範囲でもありますので、必ず押さえておきましょう。

ページトップへ