このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

パスワードの期限管理:chageコマンド

パスワードの期限管理:chageコマンド

 Linuxシステムのセキュリティ管理では、ユーザーのパスワードに有効期限を設定することが重要です。これにより、定期的にパスワード変更を促し、不正アクセスを防止できます。そのためのコマンドが「chage」です。chage コマンドは、ユーザーのパスワードの有効期限を管理し、特定の期間が経過した後にパスワードを変更するように求める設定が可能です。このコマンドは、特定のユーザーアカウントを期間限定で有効にする場合にも利用され、システム管理者にとって有効なツールです。

chageコマンドの概要

 chage コマンドは、ユーザーアカウントのパスワード有効期限を管理するために使用されるコマンドです。名前は「change」ではなく「chage」で、おそらく発音は「チェイジ」と思われます。このコマンドを使用することで、ユーザーに定期的にパスワードの変更を求めたり、特定の期間だけアカウントを有効にすることができます。

【構文】
chage [オプション] ユーザー名

コマンドの主なオプション

以下は、chage コマンドの主なオプションとその説明です。

オプション説明
-lユーザーのパスワード期限情報を表示します
-mパスワード変更が可能となる最短日数を設定します(例: 3日)
-Mパスワード変更が必要となる最長日数を設定します(例: 120日)
-dパスワードの最終更新日を設定します
-Wパスワード有効期限が切れる前の警告日数を設定します(例: 5日)
-Iパスワードの有効期限が切れてからアカウントが停止されるまでの日数を設定します
-Eアカウントを無効にする日付を設定します
コマンドの主なオプション

デフォルトのパスワード期限情報

 Linuxでは、パスワードの有効期限とアカウント停止のタイミングを細かく設定できます。有効期限切れと同時にアカウントを停止することもできますし、猶予期間を設けて、その後にアカウントを停止することも可能です。

設定項目デフォルト値
Password expires (パスワードの有効期限)なし(never)
Password inactive (アカウント停止までの日数)なし(never)
Account expire (アカウントを無効にする日付)なし(never)
Minimum number of days between password change (変更可能最短日数)0日(パスワードはいつでも変更可能)
Maximum number of days between password change (変更可能最長日数)99999日
Number of days of warning before password expires (警告日数)7日
デフォルトのパスワード期限情報

パスワードの有効期限とアカウント停止の関係

例えば、次のような設定の場合を考えます。

設定項目設定値
変更可能最短日数3日
変更可能最長日数120日
警告日数5日
パスワードの有効期限とアカウント停止の関係
1.有効期限が切れるのと同時にアカウントを停止する場合

 パスワード有効期限が切れる120日目に、ユーザーのアカウントが即座に無効化され、ユーザーはログインできなくなります。

2.有効期限が切れてからアカウントを停止するまで、7日間の猶予がある場合

 パスワード有効期限が切れた後、7日間の猶予がある(アカウント停止までの日数が7日)場合、この期間中にパスワードを変更しなければ、アカウントが無効化されます。

コマンドの使用例と解説

 以下に、chage コマンドを使用してsuzukiユーザーのパスワード情報を管理する具体的な手順を示します。

1.root ユーザーに切り替えます。

・「su -」コマンドを実行します。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~#
2.suzukiユーザーのパスワード情報をオプションを使用せずに変更します。

・「chage suzuki」コマンドを実行します。

chageコマンドを実行し、インタラクティブ(対話的)に以下のパスワード情報を設定します。

  • パスワード変更可能までの最短日数 [0]: 3
  • パスワード変更可能期間の最長日数 [-1]: 120
  • パスワード期限切れ警告日数 [7]: 5
  • パスワード無効日数 [-1]: 7
root@ubuntu-vm:~# chage suzuki
suzuki の期限情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください

	パスワード変更可能までの最短日数 [0]: 3
	パスワード変更可能期間の最長日数 [-1]: 120
	最後にパスワード変更した日付 (YYYY-MM-DD) [2024-06-06]: 
	パスワード期限切れ警告日数 [7]: 5
	パスワード無効日数 [-1]: 7
	アカウント期限切れ日付 (YYYY-MM-DD) [-1]: 
3.suzukiユーザーのパスワード情報をオプションを使用して変更します。

・「chage -m 3 -M 120 -W 5 -I 7 suzuki」コマンドを実行します。

 suzukiユーザーのパスワード変更可能最短日数を3日、最長日数を120日、警告日数を5日、アカウント停止までの日数を7日に設定します。

root@ubuntu-vm:~# chage -m 3 -M 120 -W 5 -I 7 suzuki
4.taroユーザーのパスワード情報を確認します。

・「chage -l suzuki」コマンドを実行します。

suzukiユーザーのパスワード期限情報を表示します。

root@ubuntu-vm:~# chage -l suzuki
最終パスワード変更日				:  6月 06, 2024
パスワード期限:					: 10月 04, 2024
パスワード無効化中					: 10月 11, 2024
アカウント期限切れ						: なし
パスワードが変更できるまでの最短日数		: 3
パスワードを変更しなくてよい最長日数		: 120
パスワード期限が切れる前に警告される日数		: 5
5./etc/shadowファイルを確認します。

・「grep '^suzuki' /etc/shadow」コマンドを実行します。

suzukiユーザーのパスワード情報が /etc/shadow ファイルに正しく反映されているか確認します。

「3:120:5:7」の箇所に注目します。設定が反映されていることが確認できます。

root@ubuntu-vm:~# grep '^suzuki' /etc/shadow
suzuki:$y$j9T$jRDpaMpmTnBmqeGjCBz6A.$4/jzschBwYM.Gdy9G3V/kezfvxe/kaeujNx5NnUYr83:19880:3:120:5:7::
6.suzukiユーザーのパスワード情報を元に戻します。

・「chage -m 0 -M 99999 -W 7 -I -1 suzuki」コマンドを実行します。

taro ユーザーのパスワード設定をデフォルト状態に戻します。

root@ubuntu-vm:~# chage -m 0 -M 99999 -W 7 -I -1 suzuki

まとめ

 chage コマンドは、Linuxシステムのセキュリティを高めるために、ユーザーのパスワード有効期限を管理する強力なツールです。適切に設定することで、ユーザーに定期的なパスワード変更を促し、不正アクセスのリスクを低減することができます。