Как получить уведомление, если в bash запущена определенная команда - PullRequest
0 голосов
/ 05 июня 2018

У меня есть требование.Мне нужно напечатать конкретное сообщение, пока команда unix запускается любым пользователем.Например, если кто-то запускает команду cat или команда cat выполняется в командной строке.Мне нужно пользовательское сообщение на терминале.

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Использование spydig:

sysdig -c spy_users

Альтернатива 1

Выполнить w с watch:

watch -n,5 w -h
  • w показывает, что на самом деле делают пользователи
  • watch неоднократно вызывает команду (в данном случае w) в заданном пользователем интервале времени (0,5секунд в этом случае)

Альтернатива 2

Посмотреть историю оболочки пользователя, например .bash_history:

tail -f /home/userxyz/.bash_history
0 голосов
/ 05 июня 2018

Вы можете установить пакет "psacct" / "acct"

apt-get install acct
or
yum install psacct

Включить его, используя

systemctl enable psacct
systemctl start psacct

, и теперь вы можете проверить все, что пользователь запускает в системе.

ac user
ac -d user
lastcomm
lastcomm user

Также проверьте "auddd" для дополнительной проверки и регистрации событий.

0 голосов
/ 05 июня 2018

Удалите cat из вашего пути поиска и замените его на скрипт-обертку.Поместите оригинальную команду где-нибудь еще.Убедитесь, что вы правильно обрабатываете коды выхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...