Уведомление по электронной почте Когда кто-то SSH Linux Centos7 Workstation (вывод команды, которые)

У меня аналогичная проблема. Мой подход заключается в использовании dtach для управления подключением и отключением от терминала, на котором запущен контейнер. Затем внутри контейнера я могу запустить tmux / screen и т. Д.

machinectl позволит вам запускать контейнеры при загрузке, но на момент написания этой статьи debian stable не поддерживает иметь версию systemd , которая включает эту функцию.

-1
31.08.2018, 11:10
3 ответа

Пара вещей:

  • Ваш~/.bash_profileзапускается только тогда, когда вы входите в систему. Эти другие пользователи могут не входить в систему как вы.

  • Чтобы узнать, кто заходит на ваш компьютер с CentOS через ssh, проанализируйте вывод /var/log/secure.

Это будет выглядеть примерно так:

tail -f /var/log/secure | while read LOGLINE
do
   [[ "${LOGLINE}" == *"logged in"* ]] && mail -s 'SSH Notification' $MY_EMAIL_ADDRESS
done

РЕДАКТИРОВАТЬ :Вы отредактировали свой вопрос, чтобы узнать, как работает команда who. Послушайте, я не разработчик C, но вот исходный код команды who, если вы действительно хотите взглянуть на то, как она работает. Я не думаю, что это то, что вы ищете, однако -и я знаю, что у меня нет другого способа помочь вам. Даже если вы можете создать скрипт для проверки входа в систему, используя cronи who, всегда есть вероятность, что кто-то может войти и выйти из системы между вашими запусками. Журналы - это путь.

1
28.01.2020, 05:10

Вы можете получить нужную информацию из команды "who", а затем направить ее в команду mail. Пример команды:

 who | awk '{print $1" "$3" "$4" " $5}' | tail -1 | mail -s 'WARNING: SSH Notification' EMAIL_ADDRESS

Сохраните предыдущую команду как bashи запланируйте ее выполнение в crontabкаждые определенные минуты (, например. каждые 30 минут ).

0
28.01.2020, 05:10

вы можете передать вывод команды last.

last | head -1 | mail -s 'WARNING:' EMAIL_ADRESS
0
28.01.2020, 05:10

Теги

Похожие вопросы