chage と usermod によるパスワードの有効期限とグループ所属の変更
このステップでは、より高度なユーザープロパティを管理します。chage を使用してパスワードの有効期限を制御し、パスワードセキュリティポリシーを適用する方法と、usermod を使用してユーザーのグループ所属を管理し、権限やアクセス権を制御する方法を学びます。
まず、student1 アカウントのパスワード有効期限(エイジング)情報を確認しましょう。chage(change age)コマンドに -l(list)フラグを付けると、これらの詳細が表示されます。
sudo chage -l student1
出力には、アカウントのデフォルト設定が表示されます。日付はユーザーを作成した日に対応します。
Last password change : Dec 08, 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 : 99999
Number of days of warning before password expires : 7
セキュリティ上、ユーザーに定期的なパスワード変更を求めるのは良い習慣です。パスワードを 90 日ごとに変更する必要があり(-M 90)、変更は 7 日に 1 回しか行えず(-m 7)、有効期限の 14 日前に警告が表示される(-W 14)というポリシーを設定してみましょう。
sudo chage -M 90 -m 7 -W 14 student1
設定を再度表示して、変更を確認します。
sudo chage -l student1
出力に新しいポリシーが反映されます。
Last password change : Dec 08, 2024
Password expires : Mar 08, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
次に、グループ所属を変更しましょう。ユーザーは 1 つのプライマリグループに属し、複数のセカンダリ(補助)グループに属することができます。ユーザーのグループは id コマンドで確認できます。
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1)
これは、student1 のプライマリグループが student1 (gid=5001) であり、まだセカンダリグループには属していないことを示しています。
developers という新しいグループを作成し、そこに student1 を追加しましょう。まず、グループを作成します。
sudo groupadd developers
次に、usermod を使用して student1 をこの新しいグループに追加します。-aG フラグは非常に重要です。-G はセカンダリグループを指定し、-a(append)は他のグループから削除せずにユーザーをグループに追加します。
sudo usermod -aG developers student1
ユーザーのグループを再度確認します。
id student1
出力に developers グループが含まれるようになりました。
uid=5001(student1) gid=5001(student1) groups=5001(student1),1002(developers)
もし -a フラグを忘れたらどうなるでしょうか?別のグループ testers を作成し、-G のみを使用して student1 を追加してみましょう。
sudo groupadd testers
sudo usermod -G testers student1
もう一度グループを確認します。
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers)
student1 が developers グループに属していないことに注目してください。-a なしで usermod -G を使用すると、既存のすべてのセカンダリグループが新しいリストで 置き換えられて しまいます。ユーザーを両方のグループに所属させるには、すべてのグループをリストするか(-G developers,testers)、追加フラグを使用する必要があります。正しく student1 を developers グループに再追加して修正しましょう。
sudo usermod -aG developers student1
最終的な状態を確認します。ユーザーは両方のグループのメンバーになっているはずです。
id student1
uid=5001(student1) gid=5001(student1) groups=5001(student1),1003(testers),1002(developers)