サーバにログインしているユーザの監視方法
複数人でサーバを運用・構築する場合、誰がログインしているのか分からず不安になる時ありませんか?
僕はあります。
とわいえ、常にログインユーザを監視する事は非常に難しいので今回はログイン時に実行するメール送信シェルを作る事にしました。
まずは以下のシェルスクリプトをユーザのホームディレクトリへ作成。
login.sh
#!/bin/sh subject="【報告】[username]ユーザがログインしました" address="info@example.com" echo "Reported login: $address" mail -s `echo $subject | nkf -j` $address << EOF ` w | nkf -j` EOF exit
あ、nkfが入ってない場合はインスコしてください。
次にログイン時に自動実行される「.bash_profile」へ追記します。
$ vi /home/[username]/.bash_profile 〜〜〜↓ファイルの最後に追加〜〜〜 ./login.sh
以上で完了です。
メール本文には「w」コマンドの実行結果が入るので、メール送信時点での全てのユーザ情報を確認する事が出来ます。
送信先メールアドレスはメーリングリストなんかが良いでしょうね。