/etc/shadow ファイルを理解する
このステップでは、/etc/shadow
ファイルの構造と目的について学びます。
/etc/shadow
ファイルは、各ユーザーアカウントの暗号化されたパスワードとパスワード関連の設定情報を格納しています。ファイル内の各行は 1 人のユーザーを表し、コロンで区切られた 9 つのフィールドが含まれています。
- ユーザー名
- 暗号化されたパスワードハッシュ
- パスワードが最後に変更された日からエポック (1970 年 1 月 1 日) までの日数
- パスワード変更の間に必要な最小日数
- パスワードが有効な最大日数
- パスワードの有効期限切れの前にユーザーに警告する日数
- パスワードの有効期限切れ後、アカウントが無効になるまでの日数
- アカウントが無効になる日からエポック (1970 年 1 月 1 日) までの日数
- 将来使用するために予約されたフィールド
ターミナルを開き、/home/labex/project
ディレクトリに移動します。
cd /home/labex/project
/etc/shadow
ファイル内の labex
ユーザーのエントリを確認しましょう。
sudo cat /etc/shadow | grep labex > /home/labex/project/labex_shadow.txt
/etc/shadow
ファイルを読み取るために sudo
を使用したことに注意してください。これは、このファイルは root ユーザーのみが読み取れるためです。
labex_shadow.txt
ファイルの内容を確認します。
cat labex_shadow.txt
出力例:
labex:$y$j9T$enO.7A1WiUBiOvRdw4gox0$cCOqZqHAQgLkhPb.NDJO9zO6T3EUQ3.AeE0amN57AZ8:19818:0:99999:7:::
この行は以下を示しています。
- ユーザー名:
labex
- 暗号化されたパスワードハッシュ:
$y$j9T$enO.7A1WiUBiOvRdw4gox0$cCOqZqHAQgLkhPb.NDJO9zO6T3EUQ3.AeE0amN57AZ8
- 最後のパスワード変更:エポック (1970 年 1 月 1 日) から 19818 日
- 最小パスワード有効期間:0 日 (制限なし)
- 最大パスワード有効期間:99999 日 (期限なし)
- パスワード警告期間:有効期限の 7 日前
- アカウントは期限切れにならない
デフォルトでは、/etc/shadow
ファイルは root ユーザーのみが読み取りおよび変更できます。ただし、誤った設定
のパーミッションにより、特権昇格の機会が生じることがあります。