Как получить уведомление, когда другие пользователи входят в «мою» систему?

9

Я знаю whoкоманду, показывающую мне всех зарегистрированных пользователей. Но я хочу как-то сообщить, когда кто-то, кроме меня, входит в мою систему. Любой апплет? Также было бы неплохо, если бы апплет отображал количество различных пользователей, вошедших в систему, то есть наличие оболочки входа в систему и установленного соединения ssh.

математический
источник
КСТАТИ: кто-то может прокомментировать перерыв в попытках. Затем выполняется /etc/profile.d? Я полагаю, что это зависит от взлома, поэтому для ssh-атак методом грубой силы это может иметь место, путем эскалации прав запущенных сервисов это может не произойти. Ааа, похоже, мониторинг пользователей - непростая задача.
математика

Ответы:

10

Что касается уведомлений, когда кто-то входит в вашу систему, вы можете попытаться добавить небольшой скрипт в /etc/profile.dскрипт. Используя notify -send (часть пакета libnotify-bin), вы можете попробовать это:

/etc/profile.d/notify_log.sh

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

и затем, каждый раз, когда кто-то входит в вашу систему, вы будете уведомлены.

РЕДАКТИРОВАТЬ: Итак, это не работает хорошо :( Если вы настроили почтовый сервер на вашем компьютере, вы можете использовать команду mail вместо notify-send.

Но согласно сообщению здесь , лучшим решением будет сценарий pam_exec .

Седрик Жюльен
источник
Хорошая идея, но нет необходимости делать ее исполняемой и не нужно иметь шебанга, потому что файлы в /etc/profile.d/источнике. Только логин оболочки (виртуальные терминалы и логин ssh) и некоторые логины GUI выполняют инициализацию профиля.
энзотиб
@enzotib: спасибо за советы, я исправил свой ответ :)
Седрик Жюльен
Хорошо, я пытался, но безуспешно. Причина в том, что один пользователь не может легко уведомить другого. Поэтому некоторые переменные окружения должны быть установлены, см .: g-loaded.eu/2007/11/18/… . До сих пор у меня есть исполняемый файл, который делает вещи, но не при входе в систему!?! Если я сразу source /etc/profile.d/notify_log.shпосле входа в систему через ssh, уведомление отправляется. Я думаю, это не выполняется должным образом после входа в систему. Я наблюдал /var/log/auth.log без удачи. Любая помощь?
математика
Я нашел причину: я использую ZSH, и / etc / zsh / zprofile пуст, он должен быть источником / etc / profile, который, в свою очередь, должен иметь источник /etc/profile.d/*.sh, но ничего не делает! > - (.. Тогда я получу это явно и проверим все остальные установленные оболочки, так как я не знаю, какие оболочки входа используются всеми пользователями 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