Я ищу программу для отслеживания пользователей из CLI. Может быть, в настоящее время есть какое-то решение, которое анализирует файлы журналов и файлы .bash_history, чтобы распечатать сводку того, что они сделали, когда они вошли в журнал и т. Д.?
Я вижу 3 различных способа сделать то, что вы хотите:
. Лично я предпочитаю использовать учет процессов для этого вида мониторинга активности. Он также наиболее похож на то, что вы ищете (сводка команд, сводка входа в систему ...).
Я думаю, что вы ищете здесь функцию аудита, которая является частью Linux. Совершенно неприятно заниматься настройкой, но это позволит вам отслеживать все, что происходит, на выбранном вами уровне. Все выполняемые команды и их аргументы, все файлы, в которые записываются, и т. Д. Если задействовано ядро, вы можете перехватить вызов.
Для «быстрого старта» см. http: //www.novell. com / documentation / sled10 / pdfdoc / auditqs_sp2 / auditqs_sp2.pdf
Edit Я потратил несколько минут, играя с auditd, и придумал для вас этот рецепт:
auditctl -a entry,always -F arch=`arch` -F euid!=0 -S execve
Это будет регистрировать каждое выполнение программы для аудита log (при условии, что auditd запущен и настроен). Он не будет регистрировать что-то вроде установки "FOO = bar" в качестве переменной в bash, но он будет регистрировать vim $ FOO
, показывая, что vim использовался для открытия bar
. Это также отловит все, что запускается в сценарии, вызываемом vim и т. Д. Я добавил фильтр, чтобы исключить все, что запускается от root, потому что есть ряд автоматизированных процессов, которые быстро загромождают вещи в моей системе. При желании вы можете установить uid / euid> = 1000 (обычная отправная точка для пользователей, а не для системных учетных записей).
Достойная документация представляла собой комбинацию http://www.novell.com/documentation/ sled10 / pdfdoc / audit_sp2 / audit_sp2.pdf и man auditctl
.