是否可以阻止特定用户history -c
在 shell 中执行命令。
答案1
history
命令是 bash 内置命令(你可以在 中的第 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。
答案2
作为 Radu 答案的替代方案,这将把chown
所有与 bash 相关的文件授予 root 权限,然后授予其他用户只读访问权限(除.bash_history
和 之外.bashrc
,他们将拥有读取和附加权限)
将这些行添加到$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
!