/etc/shadow(シャドウファイル)とは
/etc/shadowとは、ユニックス系オペレーティングシステムにおいて、ユーザーアカウントのパスワード情報を安全に保管するためのシステムファイルです。このファイルには暗号化されたパスワードハッシュ値やパスワードの有効期限などの認証に関する重要なデータが記録されています。
/etc/shadowファイルはルート権限を持つユーザーのみが読み取り可能な設定となっており、一般ユーザーからのアクセスは完全に制限されています。従来の/etc/passwdファイルがすべてのユーザーから読み取り可能だったセキュリティ上の問題を解決するために導入された仕組みです。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
/etc/shadowファイルの具体的な構造とフィールド構成
/etc/shadowファイルの各行は、コロン記号で区切られた9つのフィールドから構成されており、ユーザー名から始まる明確な順序で情報が配置されています。第1フィールドにはログイン名、第2フィールドには暗号化されたパスワードハッシュ値が格納され、SHA-512などの強固なハッシュアルゴリズムが使用されます。
第3フィールドから第8フィールドまではパスワードのエージング機能に関連する設定値が含まれ、数値は1970年1月1日からの経過日数で表現されます。これらのフィールドを適切に設定することで、組織のセキュリティポリシーに従ったパスワード管理の自動化を実現できます。
| フィールド番号 | 内容 |
|---|---|
| 1 | ユーザー名 |
| 2 | 暗号化パスワード |
| 3 | 最終変更日 |
| 4 | 変更可能日数 |
| 5 | 変更必須日数 |
| 6 | 警告日数 |
| 7 | 無効化日数 |
| 8 | アカウント期限 |
| 9 | 予約フィールド |
実際のエントリ例とコマンドによる確認方法
/etc/shadowファイルの実際のエントリは、root:$6$xyz...:18500:0:99999:7:::のような形式で記述されており、各フィールドが明確に区分されています。パスワードフィールドの先頭にある$6$という文字列は、SHA-512ハッシュアルゴリズムが使用されていることを示す識別子です。
ファイルの内容を確認するにはsudo cat /etc/shadowコマンドを実行する必要があり、管理者権限なしでのアクセスは拒否されます。パスワードフィールドに!!や*が設定されているエントリは、それぞれロックされたアカウントやパスワードログインが無効化されたアカウントを意味しています。
sudo cat /etc/shadow
user1:$6$rounds=5000$saltsalt$hash...:19000:0:99999:7:30:19500:
user2:!!:19001:0:99999:7:::
user3:*:19002::::::※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
【AWS】認定資格12種類の一覧や難易度、費用などを解説
Canvaとは?使い方やアカウント登録などを初心者向けに解説
git configで設定情報を確認・表示する方法
「Pythonはやめとけ」と言われる理由と学習するメリット
Ubuntuのversionを確認する方法







