点击这里获取免费大流量卡

使bash历史记录文件和相关文件无法被删除或修改

chattr +a /home/*/.bash_history
chattr +a /home/*/.bash_profile
chattr +a /home/*/.bash_login
chattr +a /home/*/.profile
chattr +a /home/*/.bash_logout
chattr +a /home/*/.bashrc
这是使用文件系统附加属性来指定文件只能被追加,大多数文件系统支持此功能(例如ext2/3,XFS,JFS)。在FreeBSD上可以执行:sappnd /home/bob/.bash_history
.bash_profile,.bash_login,.profile这三个文件在交互式bash shell(或非交互式sehll使用–login选项)调用时被读取(在读完全局配置文件/etc/profile后)。.bashrc文件只在当non-login交互式shell调用时被读取。

配置 .bash*配置文件

vi /root/test
shopt -s histappend
readonly PROMPT_COMMAND="history -a"
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTIGNORE
ls -alh /home/*/.bashrc|awk '{print $NF}'| while read line;do [ -z $line ];cat /root/test >> $line;done
rm -rf /root/test
  • 所有的配置将针对.bashrc文件,因为其他三个配置文件本身会调用.bashrc,也就是说.bashrc无论如何都会被读取 (不管用户是否刚登录或是登录后手工调用bash shell)。
  • 此处histappend选项的作用是让bash附加上最后一行$HISTSIZE给$HISTFILE文件(一般是~/.bash_history文件)(不管交互式shell何时退出。默认的,bash每次均会覆盖$HISTFILE以保证只有一个session被保存以此来节约空间。==(shopt -s histappend 在shell中执行这个命令可以使shell保存历史命令的时候使用追加的方式,因为默认是覆盖,在多终端的清空下,最后退出的终端灰覆盖以前的历史记录)==
  • 环境变量PROMPT_COMMAND会保存一条将被优先执行的命令,意思是说”history -a”命令将在用户执行命令前被优先执行,这将保证不管当前命令前一条是执行的什么,它将立即被追加进$HISTFILE,而不用等待整个会话结束再将历史命令从内存记录至硬盘。
  • 此处的readonly作用是使变量不可修改以防止被覆盖掉或是直接屏蔽掉。

    禁掉系统中所有其他shell,一般包括csh,tcsh,ksh。

chmod 750 csh
chmod 750 tcsh
chmod 750 ksh

点击这里获取免费大流量卡

如果您喜欢本站,点击这儿可以捐赠本站
这些信息可能会帮助到你: 联系作者 | 报毒说明
修改版本软件,加群提示等均为修改者自留,非本站信息,注意鉴别