Можно ли запретить конкретному пользователю выполнять команду history -c
в оболочке.
history
команда является ударом встроенная команда (можно найти это somewere в строке 4348 в man bash
). Таким образом, можно использовать что-то вроде этого в этом случае.
То, что можно сделать, должно укрепиться /home/username/.bash_history
путем создания этого только добавлением:
sudo chattr +a /home/username/.bash_history
Кроме того, необходимо укрепить переменные среды истории путем добавления следующих строк к /home/username/.bashrc
:
shopt -s histappend
readonly PROMPT_COMMAND="history -a"
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE
Источник: https://superuser.com/questions/308882/secured-bash-history-usage.
В качестве альтернативы ответу Раду, он chown
отправит все корневые файлы, связанные с bash, затем предоставит другим пользователям доступ только для чтения (кроме .bash_history
и .bashrc
, для которых они будут иметь права на чтение и добавление) [ 117]
Добавьте эти строки в $HOME/.bashrc
:
shopt -s histappend
readonly PROMPT_COMMAND="history -a"
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE
Затем выполните эти команды в терминале:
sudo chown root /home/$USER/.bash_history
sudo chown root /home/$USER/.bash_profile
sudo chown root /home/$USER/.bash_login
sudo chown root /home/$USER/.profile
sudo chown root /home/$USER/.bash_logout
sudo chown root /home/$USER/.bashrc
sudo chmod o+rwt /home/$USER/.bash_history
sudo chmod o+rt,a+x /home/$USER/.bash_profile
sudo chmod o+rt,a+x /home/$USER/.bash_login
sudo chmod o+rt,a+x /home/$USER/.profile
sudo chmod o+rwt,a+x /home/$USER/.bash_logout
sudo chmod o+rwt,a+x /home/$USER/.bashrc
sudo chattr +a /home/$USER/.bash_history
sudo chattr +a /home/$USER/.bash_logout
sudo chattr +a /home/$USER/.bashrc
Предупреждение: Не проверено в все, это обеспечивается с ABSOLUTELY NO WARRANTY
!