Моя стратегия состоит в том, чтобы добавить к /etc/bash.bashrc
следующую строку:
readonly PROMPT_COMMAND='history -a >(logger -t "cmdline $USER[$PWD] $SSH_TTY $SSH_CONNECTION")'
Затем в/etc/rsyslog.conf
:
*.* @syslogserver:514
Я предпочитаю этот подход ведению журнала в один файл, так как:
- файлы ротируются (т.е. не растут слишком сильно)
- пользователь не удаляет историю
- он создает удаленный журнал, устойчивый к несанкционированному вмешательству/взлому сервера
- Журнал ротации на удаленном сервере системных журналов можно изменить, чтобы хранить несколько месяцев регистрации
- syslog -ng позволяет вам иметь отдельные файлы журналов для каждого IP-адреса регистрации
- все находится в центре, и вам не нужно вводить несколько подач, чтобы понять, что происходит
- при прерывании удаленного сеанса bash локальная история теряется, и она не теряется при использовании этого метода
- также при открытии нескольких сессий одним и тем же пользователем, опять же все команды не попадают в историю, а я их получаю этим методом.
Jehan Alvani
05.09.2019, 23:27
Ссылка