Linuxではデフォルトでユーザーアカウントのパスワードに有効期限は設定されていませんが、複数の利用者がそれぞれのユーザーカウントを使って利用するような環境では、セキュリティ対策としてユーザーアカウントのパスワードは定期的に変更しておきたいところですが、パスワード変更をユーザー任せでは安心できません。
そこでここではRedHat系Linux(AlmaLinux9)を例に、chageコマンドを使ってユーザーアカウントのパスワードに有効期限を設定して、ユーザーに定期的なパスワード変更を強制する方法を紹介します。
目次
パスワードに有効期限を設定する
ユーザーにパスワードを設定するには、rootユーザーでchageコマンドを利用します。
chageコマンドの基本的な書式とは、次のとおりです。
# chage [オプション] ユーザー名
chageコマンドでは、以下のようなオプションを指定することで、ユーザーにパスワードの有効期限などを設定できますが、オプションを付けずに実行して、対話的にユーザーのパスワード有効期限などを設定することもできます。
- -m:パスワードの変更間隔の最短日数(日数)
- -M:パスワードの有効期間(日数)
- -W:パスワードの有効期限切れ警告の表示を開始する日数(X日前)
- -I:パスワードの有効期限が切れた後に、アカウントをロックするまでの日数
- -d:パスワードの最終更新日(日付)
- -E:ユーザーアカウントの有効期限(日付)
たとえば、以下のような設定でユーザー「user01」にパスワードの有効期限を設定する場合、
- -m:パスワードの変更間隔の最短日数(3日)
- -M:パスワードの有効期間(28日)
- -W:パスワードの有効期限切れ警告の表示を開始する日数(7日前)
- -I:パスワードの有効期限が切れた後に、アカウントをロックするまでの日数(7日)
- -E:ユーザーアカウントの有効期限(2024年1月31日)
chageコマンドにオプションを指定して実行する場合は、以下のように実行します。
# chage -m 3 -M 28 -W 7 -I 7 -E 2024-01-31 user01
対話モードで設定する場合は、ユーザー名だけ指定してchageコマンドを実行することで、設定値を順に入力して設定できます。
設定状況を確認する
ユーザーアカウントに設定されたパスワード有効期限などの設定状況を確認するときは、以下のようにコマンドを実行します。
# chage -l ユーザー名
なお、一般ユーザーでは自身のパスワード有効期限のみ確認できます。
有効期限が近づいたときや切れたときの動作
chageコマンドの「-W」オプションで、パスワードの有効期限切れ警告の表示を開始する日数を設定している場合、設定した日数になるとユーザーがログしたときにパスワードがあと何日で切れるかが表示されます。
また、「-I」オプションでパスワードの有効期限が切れた後に、アカウントをロックするまでの日数を設定している場合、パスワードの有効期限切れ後にログインしたときに、以下のようなパスワード変更画面が表示されます。
なお「-I」オプションを0日に設定していると、パスワードの有効期限が切れるとログインできなくなるのでご注意ください。
パスワードの有効期限を無期限にする
ユーザーアカウントに設定されたパスワードの有効期限を無期限にしたいときは「-M」オプションに「99999」を指定することで無期限にできます。
# chage -M 99999 ユーザー名
あとがき
複数人がそれぞれのユーザーカウントを使って利用するようなLinux環境でセキュリティを強化するなら、パスワード変更をユーザー任せにせず管理者がchageコマンドで有効期限などを設定しておくと安心です。