Как сделать историю Bash невосстановимой?

История Bash может быть удалена, просто удалив файл, который содержит. Как я могу защитить историю от очистки / удаления?

5 ответов

То, что вы спрашиваете, может быть сделано с...

sudo chattr +a ~$USER/.bash_history
sudo chattr +i ~$USER/.profile

Это установит "только добавление" для .bash_history и "неизменный бит" для .profile и даже root не может удалить или обрезать файл, если этот бит не удален. 2-я команда не позволяет пользователю редактировать настройки для .profile,

Затем вставьте это в /etc/bash.bashrc или же /etc/.profile:

# #Prevent unset of histfile, /etc/profile
HISTFILE=~/.bash_history
HISTSIZE=10000
HISTFILESIZE=999999
# Don't let the users enter commands that are ignored# in the history file
HISTIGNORE=""
HISTCONTROL=""
readonly HISTFILE
readonly HISTSIZE
readonly HISTFILESIZE
readonly HISTIGNORE
readonly HISTCONTROL
export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL

Это заблокирует большинство простых действий, которые пользователь может совершить, чтобы испортить это. Но это не остановит более опытных пользователей...

  • пользователь может просто переключиться на другую оболочку, и вы ничего не увидите в регистре.
  • любой с паролем администратора или любой процесс с CAP_LINUX_IMMUTABLE возможность может удалить неизменный бит
  • Команды, начинающиеся с пробела по умолчанию, не сохраняются в истории.
  • Вы не можете остановить kill -9 $$, Эта команда предотвратит запись в историю.

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

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

Гораздо лучшим вариантом будет использование grsecurity или установка acct (Утилиты учета GNU).

Это не тот ответ, который вы искали, но вам действительно нужна система аудита linux, а не bash. Система аудита разработана специально для подобных вещей, в то время как история оболочки - это удобная функция, и есть много способов ее изменить или просто не использовать, как указано во многих ответах выше.

Вы не можете защитить .bash_history файл от удаления. Если вы сделаете его права доступа доступными только для чтения, bash не сможет в него записать.

Тем не менее, вы можете создать псевдоним для rm в вашем ~/.bashrc так что каждый раз, когда вы хотите что-то удалить, он спросит вас (y/n) вопросы

Поместите эту строку в свой ~/.bashrc файл.

alias rm="rm -i"

Также убедитесь, что только вы можете читать / писать из / в этот файл.

chmod 600 ~/.bashrc

должен сделать работу.

Не защита от самого удаления, а способ сохранить резервную копию - это сохранить ~/.bash_history в Dropbox и символическую ссылку на него.

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

Вы можете установить /etc/skel/.bashrcили каждого пользователя ~/.bashrc

      readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE
Другие вопросы по тегам