Есть ли способ записывать действия vi? Я подозреваю, что другой пользователь выдает команды, заходя в оболочку внутри редактора vi, по-видимому, эта команда не записывается в историю.
Как вы сейчас регистрируете их действия? Самый простой - запретить им запускать оболочки из vi.
# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc
Если вы используете специальную оболочку для регистрации их команд, вы можете изменить vi, чтобы использовать только эту оболочку.
Вы также можете включить учет процесса (s / can / should /!)
Затем вы можете использовать:
lastcomm(1)
чтобы увидеть, как выполнялась команда, и были ли они запущены после вилки, с exec или без.
В сочетании с IDS на основе хоста это должно дать вам то, что вам нужно, «чтобы справедливость короля могла восторжествовать над ним».
Вы про историю оболочки? vi режим оболочки (:sh
) запускает оболочку пользователя по умолчанию. Если это bash, вы можете убедиться, что ведение журнала всегда включено, отредактировав глобальный / etc / bashrc и добавив:
set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'
это гарантирует, что каждая пользовательская команда будет записана в файл, она не будет перезаписана и будет обновляться каждый раз при появлении приглашения оболочки.
Обратите внимание, что пользователи могут изменить это в своем личном ~/.bashrc
так что это не абсолютная гарантия того, что ведение журнала произойдет.
Некоторые версии vi (например, nvi) поддерживают безопасный режим, который отключает доступ к оболочке, путем запуска vi как nvi -S
. Вы можете установить глобальный псевдоним в /etc/bashrc
чтобы также включить этот режим по умолчанию.
Обратите внимание, что в целом проблема доступа пользователей к оболочке неожиданными способами является классической проблемой unix. Невозможно полностью отключить это, лучшее, что вы можете сделать, - это попытаться ограничить доступ по умолчанию. Искушенный пользователь (или даже тот, кто знает, как пользоваться Google) всегда может обойти эти ограничения. Например, если пользователь не хочет, чтобы его история оболочки регистрировалась, он всегда может просто запустить новую копию оболочки с любыми параметрами, которые он хотел использовать.
Вот отличный записать о том, как принудительно вести журнал в bash и способах его обхода.
Наконец, думали ли вы, что просто поговорите с пользователем, чтобы определить, что он делает? В 99% случаев простое словесное общение может устранить любую путаницу. Если вы регистрируете действия этого пользователя, потому что не доверяете им, возможно, вы сможете поговорить с ними о своих проблемах.