Ответы:
Вы также можете включить процесс учета (s / может / должен /!)
Затем вы можете использовать:
lastcomm(1)
чтобы увидеть выполнение команды и если они были выполнены после разветвления, с или без exec.
В сочетании с IDS на основе хоста это должно дать вам то, что вам нужно, «чтобы правосудие короля могло быть исполнено над ним».
Как вы регистрируете их деятельность прямо сейчас? Самый простой способ - заблокировать запуск оболочек из 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, чтобы использовать только эту оболочку.
Вы говорите об истории раковины? vi shell mode ( :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% случаев может устранить любую путаницу. Если вы регистрируете действия этого пользователя, потому что не доверяете ему, возможно, вы можете поговорить с ним о своих проблемах.