Назад | Перейти на главную страницу

Отключить возможность скрывать историю команд Bash

Пользователь может скрыть историю команд в Bash:

  1. добавьте пробел перед командой
  2. отключить HISTFILE

Как я могу это отключить?

Есть несколько вещей, которые вы можете сделать, но в конечном итоге для достаточно опытного пользователя их можно легко обойти.

Вы можете установить для соответствующих переменных управления историей (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 который обходит все сценарии инициализации, они могут затем тривиально создать сценарий, содержащий нужные им настройки / инициализацию. Вы сможете увидеть, что они сделали это, но не то, что они сделали впоследствии.

Если вы хотите иметь возможность регистрировать действия пользователей таким образом, чтобы они не могли их обойти, тогда вам нужно использовать аудит не история.