Пользователь может скрыть историю команд в Bash:
Как я могу это отключить?
Есть несколько вещей, которые вы можете сделать, но в конечном итоге для достаточно опытного пользователя их можно легко обойти.
Вы можете установить для соответствующих переменных управления историей (HISTFILE, HISTFILESIZE, HISTSIZE, HISTCONTROL, HISTIGNORE) значения, которые вам нужны, и сделать их доступными только для чтения. Сделайте это в удобном общесистемном файле инициализации, который пользователи не могут редактировать. Так, например, вы можете установить
readonly HISTFILE=~/.bash_history
readonly unset HISTCONTROL
или
readonly HISTCONTROL=ignoredupes
Однако это не мешает пользователю редактировать $ HISTFILE и удалять из него команды или удалять файл, а затем связывать его с / dev / null, чтобы команды снова были скрыты.
Вы можете решить эту проблему, добавив $ HISTFILE только с болтать
chattr +a /home/alice/.bash_history
Теперь .bash_history не может быть изменен, только добавлен к (не забудьте сделать какую-то обрезку). Мы можем видеть все, что делает пользователь ... нет,
Пользователю легко обойти эти ограничения.
bash --norc --noprofile
который обходит все сценарии инициализации, они могут затем тривиально создать сценарий, содержащий нужные им настройки / инициализацию. Вы сможете увидеть, что они сделали это, но не то, что они сделали впоследствии.Если вы хотите иметь возможность регистрировать действия пользователей таким образом, чтобы они не могли их обойти, тогда вам нужно использовать аудит не история.