安全的 bash 历史使用

Rad*_*mko 5 linux debian sudo permissions

我知道用户发送到服务器的所有命令都会自动登录 ~/.bash_history

我想让我的同事访问我的电脑(我已经给了他一些有限的访问权限来使用 sudo via /etc/sudoers),即使我信任他,我也很想可靠地知道他在我的电脑上做了什么 - 所以我需要为了确定:

  • ~/.bash_history不能妥协(他不能截断或以某种方式更改文件)
  • 他无法更改会影响日志记录的关键环境变量 - 如 HISTCONTROL、HISTFILE 或 HISTSIZE
  • 他不能运行类似的东西 history -c

我不知道我是否忘记了什么,但我只需要确定,在我来到 PC 之后,我会看到他所做的一切。

Chr*_*ing 11

通过使 bash_history 和 bash 配置文件成为仅附加文件来强化它们:

chattr +a /home/user/.bash_history
chattr +a /home/user/.bash_profile
chattr +a /home/user/.bash_login
chattr +a /home/user/.profile
chattr +a /home/user/.bash_logout
chattr +a /home/user/.bashrc

通过将以下行添加到 /home/user/.bashrc 来强化环境变量:

shopt -s histappend
readonly PROMPT_COMMAND="history -a"
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE

histappend当交互式 shell 退出时,告诉 bash 将最后的 $HISTSIZE 行附加到 $HISTFILE 文件中。 PROMPT_COMMAND在发出每个提示之前执行给定的命令。 history -a将在当前命令之前键入的命令附加到 $HISTFILE。

禁用对其他 shell 的访问:

chmod 750 csh
chmod 750 tcsh
chmod 750 ksh

  • bashrc 和类似的配置文件不应该是不可变的而不是仅附加模式吗? (2认同)