他のユーザーが「私の」システムにログインしたときに通知を受け取る方法は?


9

whoログインしているすべてのユーザーを表示するコマンドを知っています。しかし、私以外の誰かが私のシステムにログインしたときに、どういうわけか知らせたい。アプレットは?アプレットがログインしている個別のユーザーの数を表示する場合、つまり、ログインシェルがあり、ssh接続が確立されている場合も、すばらしいでしょう。


ところで:誰かが侵入の試みについてコメントできますか?それでも/etc/profile.dは実行されますか?それは侵入に依存していると思うので、ブルートフォースのssh攻撃の場合、これは保持される可能性があり、実行中のサービスの権限昇格によって、保持されない可能性があります。ああ、ユーザーの監視は簡単な作業ではないようです。
数学

回答:


10

誰かがシステムにログインしたときの通知の一部として、/etc/profile.dスクリプトに小さなスクリプトを入れてみることができます。使用して通知し、送信をあなたがこれを試みることができる(libnotifyパッケージビンパッケージの一部):

/etc/profile.d/notify_log.sh

notify-send -t 3000 "User logged in" `whoami`

その後、誰かがシステムにログインするたびに通知されます。

編集:それで、それはうまくいきません:(あなたのマシンにメールサーバーを設定したなら、あなたの代わりにメールコマンドを使うことができますnotify-send

しかし、ここ投稿によると、より良い解決策はpam_execスクリプトです。


良いアイデアですが、実行可能にする必要も、シバンを作成する必要もありません/etc/profile.d/。ログインシェル(仮想端末とsshログイン)と一部のGUIログインだけがプロファイルの初期化を実行します。
enzotib

@enzotib:ヒントについては、おかげで、私は私の答え:)修正
セドリック・ジュリアン

わかりました、私は試しましたが、今のところ運がありません。その理由は、あるユーザーが別のユーザーに簡単に通知することができないからです。したがって、いくつかの環境変数を設定する必要があります。g-loaded.eu / 2007/11/18 / …を参照してください。これまでのところ、何かを実行する実行可能ファイルがありますが、ログインすると実行できません!?!source /etc/profile.d/notify_log.shSSH経由でログインした直後の場合、通知が送信されます。ログイン後、正常に実行されなかったようです。運が悪ければ/var/log/auth.logを観察しました。何か助け?
数学

私は理由を見つけました:ZSHを使用し、/ etc / zsh / zprofileが空である場合、/ etc / profile.d / *。shをソーシングするはずの/ etc / profileをソーシングするはずですが、何もしません!> -私は、すべてのLDAPユーザーによって使用されるログインシェル...とにかく感謝を知らないので、(..私は、明示的にこれを調達し、他のすべてのインストールシェルをチェックします。
数学

@brubelsabs:おお、私は他の解決策で私の回答を編集しました
セドリックジュリアン

2

これを行うに/etc/profile.d/notify.shは、次の内容のファイルを作成します。

#!/bin/sh

sender="hostname@example.com"
recepient="admingroup@example.com"
subject="Privileged Account logon used"
message="`env`"
    echo "$message" | mail -s "$subject" -r "$sender" -Smtp=mail.example.com "$recepient"

mailxがインストールされていると仮定します。


はい、デスクトップ通知を見逃すことがありますが、メールは通常残っています。
数学

@Antonioスクリプトをcrontabに追加する必要がありますか?動作していないようです。
cokedude
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.