Linux パスワード有効期限の簡単な設定と無効化方法
1. はじめに
Linuxでは、セキュリティ対策の一環として、ユーザーアカウントのパスワードに有効期限を設定することが一般的です。この設定により、ユーザーが定期的にパスワードを変更するよう促せます。
一方で、管理アカウントなど、特定のユーザーに対して有効期限を無効化したいケースも存在します。そこで本記事では、Linux パスワード有効期限の設定方法と無効化方法について、具体的な手順を解説します。
関連情報:
Linuxでのユーザー管理についてさらに詳しく知りたい方は、Linuxユーザー管理完全ガイドをご覧ください。
2. パスワード有効期限の基礎
まず、パスワード有効期限やアカウント管理情報は、/etc/shadow
というファイルで管理されています。このファイルは通常、管理者権限(sudo
など)を持っているユーザーのみがアクセスできるよう厳重に保護されています。
/etc/shadow
のフィールド構造
以下は、/etc/shadow
ファイルの基本的なフォーマットです。
ユーザー名:パスワードハッシュ:最終変更日:最小日数:最大日数:警告日数:無効日数:有効期限:予約
- 最終変更日 (Last password change)
パスワードが最後に変更された日を「1970-01-01からの日数」で記録。 - 最小日数 (Minimum number of days)
パスワードを変更した後、次に再変更できるまでの日数。 - 最大日数 (Maximum number of days)
パスワードが有効である日数。この日数を超えるとパスワード変更が必要になります。 - 警告日数 (Number of days of warning)
有効期限切れ前に警告を出す日数。
3. パスワード有効期限を設定する方法
次に、Linux パスワード有効期限を設定する方法を説明します。この作業には、chage
コマンドを使用します。
手順: パスワードの有効期限を90日に設定する
以下のコマンドを実行すると、指定したユーザーのパスワード有効期限を90日に設定できます。
sudo chage -M 90 testuser123
-M 90
は「最大日数 (Maximum) を 90 日」に設定するオプションです。testuser123
は、設定したいユーザー名に置き換えてください。
設定が正しく反映されたか確認する
設定後に、以下のコマンドを実行して確認します。
sudo chage -l testuser123
出力例:
Last password change : Nov 13, 2024
Password expires : Feb 11, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
上記のように、Linux パスワード有効期限が90日後に設定されていれば成功です。
4. パスワード有効期限を無効化する方法
一方、特定のユーザーで「Linux パスワード有効期限を無効化」したい場合は、次の手順を実行します。
手順: 有効期限を無効化する
以下のコマンドで、パスワード有効期限を無期限に設定します。
sudo chage -M -1 testuser123
-M -1
は「最大日数を -1 に設定(無期限化)」を意味します。
設定が正しく反映されたか確認する
再び、以下のコマンドで設定が反映されているか確認します。
sudo chage -l testuser123
出力例:
Last password change : Nov 13, 2024
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : -1
Number of days of warning before password expires : -1
このように、Password expires
が never
となり、パスワード有効期限が無期限であることを確認できます。
5. /etc/shadow
を直接編集する方法
最後に、chage
コマンドを使用せずに、/etc/shadow
ファイルを直接編集する方法について説明します。
ただし、この方法はリスクが高いため、上級者向けです。
手順: ファイルを編集する
専用コマンドの vipw -s
を使用して、競合やパーミッションの問題を回避しながら編集を行います。
sudo vipw -s
例: パスワード有効期限を無効化する
以下のように、対象ユーザーの行を編集します。
- 修正前:
testuser123:!!:20040:0:30:7:::
- 修正後:
testuser123:!!:20040:0:-1:7:::
この変更で、「最大日数」の値が -1
に設定されます。
注意
- 編集前には必ずバックアップを取ることを推奨します。
- 誤った編集が行われると、ユーザーがログインできなくなる可能性があります。
6. まとめ
- Linux パスワード有効期限を設定する場合は、以下のコマンドを使用します。
sudo chage -M ユーザー名
- 無効化する場合は、次のコマンドを実行します。
sudo chage -M -1 ユーザー名
/etc/shadow
を直接編集する際は慎重に行い、事前にバックアップを取ること。
Linuxでのパスワード有効期限管理を適切に行い、セキュリティリスクを最小限に抑えましょう。
参考リンク
- /etc/passwdと/etc/shadowファイルについてのまとめ | server-memo.net
- Linux 用 /etc/shadow ファイル完全ガイド
- ひつまぶし食べたい: /etc/shadowについて勉強してみた