Linuxでユーザーの最後のパスワード変更日を確認する方法

Linuxシステム管理の一環として、特定のユーザーが最後にパスワードを変更した日を知ることが有用な場合があります。この記事では、Linuxでユーザーの最後のパスワード変更日を確認する方法について詳しく解説します。具体的なコード例、その詳細な解説、さらに応用例までを網羅しています。

目次

なぜこの情報が重要なのか

ユーザーのパスワード変更履歴を追跡することは、多くのケースでセキュリティポリシーの一部となります。定期的なパスワード変更が推奨されている場合、最後のパスワード変更日を確認することで、そのポリシーが守られているかを監査できます。

基本的なコマンド

chageコマンド

Linuxには`chage`というコマンドがあり、このコマンドを使用するとユーザーのパスワードに関する多くの情報を確認できます。

sudo chage -l username  # usernameは対象のユーザー名

このコマンドを実行すると、ユーザーのパスワードに関する詳細な情報(最後にパスワードが変更された日、パスワードの有効期限など)が表示されます。

詳細解説

chageコマンドの出力

`chage`コマンドの出力にはいくつかの項目がありますが、この記事では「Last password change」に注目します。この項目が示すのは、対象となるユーザーが最後にパスワードを変更した日です。

出力例

Last password change                    : Jan 01, 2022

この例では、ユーザーが最後にパスワードを変更した日が2022年1月1日であることがわかります。

応用例

特定のユーザーの一覧を対象にする

for user in user1 user2 user3; do
  sudo chage -l $user
done

このスクリプトは、`user1`, `user2`, `user3`といった特定のユーザーを対象に`chage`コマンドを実行します。

全ユーザーを対象にする

getent passwd | cut -d: -f1 | xargs -I {} sudo chage -l {}

この一行のコマンドは、システム上のすべてのユーザーの最後のパスワード変更日を表示します。

出力をログファイルに保存する

sudo chage -l username >> /path/to/logfile.log

このコマンドは、`chage`コマンドの出力をログファイルに保存します。

特定の日付以前にパスワードを変更していないユーザーを探す

#!/bin/bash
target_date="2022-01-01"
for user in $(getent passwd | cut -d: -f1); do
  last_change=$(sudo chage -l $user | grep "Last password change" | cut -d: -f2)
  if [[ "$last_change" < "$target_date" ]]; then
    echo "User $user needs to change their password."
  fi
done

このスクリプトは特定の日付以前にパスワードを変更していないユーザーを探し出します。

まとめ

Linuxでユーザーの最後のパスワード変更日を確認する方法には`chage`コマンドが非常に便利です。このコマンドを使いこなすことで、より効率的なセキュリティ管理が可能となります。応用例も含め、この記事が皆さんのシステム管理の一助となれば幸いです。

created by Rinker
オライリージャパン
¥3,080 (2024/07/27 03:07:07時点 Amazon調べ-詳細)

コメント

コメントする

目次