历史记录清除
Bash、shell、终端将当前会话中使用的命令列表保存在内存中,因此必须对其进行清理。
history用于命令查看当前历史记录。
环境变量:HISTFILE
查找history命令文件存储路径:
echo $HISTFILE #返回当前用户history命令存储文件路径
删除变量:
unset HISTFILE
这时候在使用一次"echo HISTFILE"将返回为空。
为了防止历史命令被保存,也可以将其发送到/dev/null
HISTFILE=/dev/null
或
export HISTFILE=/dev/null
这时候历史命令将被发送到 /dev/null
echo HISTFILE #返回/dev/null
设置HISTSIZE变量将当前会话期间要保留的命令数设置为 0
HISTSIZE=0
或
export HISTSIZE=0
设置HISTFILESIZE变量更改历史文件中允许的行数设置为 0
HISTFILESIZE=0
或
export HISTFILESIZE=0
设置set命令来更改 shell 参数
set +o history #关闭history命令
set -o history #开启history命令
或
shopt -ou history #关闭
shopt -os history #开启
也可以使用 "-cw" 开关简单地清除历史记录并将更改写入磁盘。
history -cw
这些操作只会清除当前会话的历史记录;为了确保在注销会话时清除历史记录,可以使用以下命令:
cat /dev/null > ~/.bash_history && history -c && exit
或者使用kill命令退出会话而不保存历史记录:
kill -9 $$
清除日志文件
常见的日志文件:
/var/log/messages # 一般消息和系统相关的东西
/var/log/auth.log # 认证日志
/var/log/kern.log # 内核日志
/var/log/cron.log # Crond 日志
/var/log/maillog # 邮件服务器日志
/var/log/boot.log # 系统启动日志
/var/log/mysqld.log # MySQL 数据库服务器日志文件
/var/log/qmail # Qmail 日志目录
/var/log/httpd # Apache 访问和错误日志目录
/var/log/lighttpd # Lighttpd 访问和错误日志目录
/var/log/secure # 认证日志
/var/log/utmp # 登录记录文件
/var/log/wtmp # 登录记录文件
/var/log/yum.log # Yum 命令日志文件
可以简单地使用rm命令直接删除日志文件
rm /var/log/auth.log
但这个过程会导致许多危险信号;最好将文件清空,而不是将其完全擦除。
使用truncate命令将文件大小减少到 0
truncate -s 0 /var/log/auth.log
通过将“nothing”映射到文件来完成清除
echo '' > /var/log/auth.log
单独使用>来清理文件
> /var/log/auth.log
利用发送到/dev/null清除文件
cat /dev/null > /var/log/auth.log
使用dd命令不向日志文件写入任何内容
dd if=/dev/null of=/var/log/auth.log
利用shred命令用无意义的二进制数据覆盖文件
shred /var/log/auth.log
或者添加-zu截断文件,并用0覆盖文件
shred -zu /var/log/auth.log
Covermyass 脚本
Covermyass 脚本自动执行包括清除日志文件和禁用 Bash 历史记录。
详细使用和下载:
添加执行权限
chmod +x covermyass
运行
root@/tmp# ./covermyass
Welcome to Cover my ass tool !
Select an option :
1) Clear logs for user root
2) Permenently disable auth & bash history
3) Restore settings to default
99) Exit tool
选项 1 清除 root 用户的日志
选项 2 禁用 Bash 和登录历史记录
选项 3 将设置恢复为默认值
需要清除所有内容,只需添加now参数
./covermyass now
注意:没有 sudo 权限,可能无法清除系统级日志文件( /var/log
/*)
结语
已无暇顾及过去,要向前走。