Linux豆知識 180
「/etc/shadow」ファイル
公開日:2015年07月30日
今回は、「/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コマンドなどを実行することで設定できます。
現在ではほとんどのディストリビューションでシャドウパスワードを採用しています。LinuCの試験範囲でもありますので、必ず押さえておきましょう。
今回のテーマを含む出題範囲を見てみる
LinuCレベル1 | :102試験 | : 1.08.1 アカウント管理 |