Linuxで無効化されたユーザーの一覧を表示する方法

この記事では、Linux環境で無効化されたユーザーの一覧を表示する方法を詳しく解説します。具体的なコード例とその解説、さらには応用例を含め、このスキルを磨くための実用的な情報を提供します。

目次

はじめに

Linuxサーバーの運用において、無効化されたユーザーを特定するスキルは重要です。セキュリティ対策や管理の効率化に貢献するこのタスクを、コマンドラインで簡単に実行できる方法を解説します。

基本的な方法

無効化されたユーザーを表示する最も基本的な方法は、`/etc/passwd` ファイルを解析することです。

awk -F: '$7=="/usr/sbin/nologin" {print $1}' /etc/passwd  # /usr/sbin/nologinが設定されたユーザーを表示

このコードは、`awk`コマンドを使用して`/etc/passwd` ファイルを解析します。`/usr/sbin/nologin`が設定されているユーザー(つまり、ログインが無効化されているユーザー)のみを表示します。

コードの詳細解説

1. `awk -F:`: フィールドセパレータとしてコロン(:)を使用
2. `$7==”/usr/sbin/nologin”`: 7番目のフィールドが`/usr/sbin/nologin`である行を抽出
3. `{print $1}`: マッチした行の1番目のフィールド(ユーザー名)を表示

応用例

1. ログを生成

awk -F: '$7=="/usr/sbin/nologin" {print $1}' /etc/passwd > disabled_users.log  # 無効化されたユーザーをログファイルに保存

この応用例では、無効なユーザーを`disabled_users.log`という名前のログファイルに出力します。

2. 管理者にメールで通知

awk -F: '$7=="/usr/sbin/nologin" {print $1}' /etc/passwd | mail -s "Disabled Users List" admin@example.com  # 無効化されたユーザーを管理者にメールで通知

無効なユーザーが存在する場合、この情報を`admin@example.com`にメールで送信します。

3. シェルスクリプトで自動化

#!/bin/bash
disabled_users=$(awk -F: '$7=="/usr/sbin/nologin" {print $1}' /etc/passwd)
if [[ -n $disabled_users ]]; then
  echo $disabled_users | mail -s "Disabled Users List" admin@example.com
fi
# 無効化されたユーザーが存在すれば、管理者にメールで通知

このシェルスクリプトを定期的に実行することで、無効なユーザーが存在する場合のみ管理者に通知します。

4. 無効なユーザーを一括削除

awk -F: '$7=="/usr/sbin/nologin" {print $1}' /etc/passwd | xargs -I {} userdel {}  # 無効化されたユーザーを一括で削除

このコマンドを実行すると、`/etc/passwd`に記載されている無効なユーザーを一括で削除します。ただし、この操作は非常に危険なので、事前の確認とバックアップが必要です。

まとめ

Linuxで無効化されたユーザーを効率的に特定する方法とその応用例について解説しました。これらの知識とスキルを活かして、Linuxサーバーの運用をよりスムーズかつ安全に行いましょう。

created by Rinker
オライリージャパン
¥3,080 (2024/09/16 12:49:29時点 Amazon調べ-詳細)

コメント

コメントする

目次