温馨提示×

CentOS回收站如何日志记录

小樊
49
2025-10-02 22:43:15
栏目: 智能运维

CentOS回收站日志记录方法

在CentOS系统中,回收站的日志记录主要依赖自定义脚本(记录删除操作的详细信息)和审计工具(监控文件系统事件),以下是具体实现方式:

一、通过自定义脚本记录删除操作日志

通过修改rm命令的别名,将删除的文件移动到回收站并记录操作日志(包括时间、原路径、目标路径)。

  1. 创建删除脚本
    新建delete脚本文件,内容如下(关键逻辑:移动文件到回收站并记录日志):
    #!/bin/bash # 记录删除信息的日志函数 log_trash() { file=$1 timestamp=$2 echo "$timestamp\t$file\t$HOME/.local/share/Trash/files/$(basename "$file")" >> ~/.local/share/Trash/.log } # 移动文件到回收站的函数 move_to_trash() { # 创建回收站目录(若不存在) mkdir -p ~/.local/share/Trash/files mkdir -p ~/.local/share/Trash/.log # 遍历所有参数文件 for file in "$@"; do if [ -e "$file" ]; then # 获取当前时间戳 timestamp=$(date +"%Y-%m-%d %H:%M:%S") # 移动文件到回收站 mv "$file" ~/.local/share/Trash/files/ # 记录日志(时间、原路径、回收站路径) log_trash "$file" "$timestamp" fi done } # 执行移动操作 move_to_trash "$@" 
  2. 设置脚本权限并配置别名
    赋予脚本可执行权限,并修改/etc/bashrc(全局生效)或~/.bashrc(当前用户生效),将rm命令替换为自定义脚本:
    chmod +x /path/to/delete # 替换为脚本实际路径 echo 'alias rm="/path/to/delete"' >> ~/.bashrc source ~/.bashrc # 重新加载环境变量 
  3. 查看日志
    回收站的日志默认保存在~/.local/share/Trash/.log,可使用以下命令查看:
    cat ~/.local/share/Trash/.log 
    日志格式示例:
    2025-10-02 10:00:00	/home/user/test.txt	/home/user/.local/share/Trash/files/test.txt 

二、使用auditd监控回收站文件系统事件

auditd是Linux系统自带的审计工具,可监控回收站目录的创建、删除、修改等事件,并将日志记录到系统审计日志中。

  1. 安装并启动auditd
    若未安装,执行以下命令安装并启动服务:
    sudo yum install audit -y sudo systemctl start auditd sudo systemctl enable auditd 
  2. 配置auditd规则
    编辑/etc/audit/audit.rules文件,添加以下规则(监控用户回收站目录,替换your_username为实际用户名):
    -w /home/your_username/.local/share/Trash/files -p wa -k trash_monitor 
    参数说明:
    • -w:指定监控目录;
    • -p wa:监控写入(w)和属性修改(a)事件;
    • -k trash_monitor:自定义日志标签(便于后续查询)。
  3. 查看审计日志
    使用ausearch命令查询回收站相关事件:
    sudo ausearch -k trash_monitor 
    日志示例:
    type=SYSCALL msg=audit(1725230400.123:456): arch=x86_64 syscall=unlinkat success=yes exit=0 a0=3 a1=7ffd12345678 a2=0 a3=0 items=1 ppid=1234 pid=5678 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 comm="rm" exe="/usr/bin/rm" key="trash_monitor" 

三、注意事项

  • 自定义脚本:需替换脚本中的路径为实际路径,且需确保用户对回收站目录有读写权限;
  • auditd配置:若需监控系统级回收站(如/root/.local/share/Trash),需调整规则中的路径;
  • 日志轮转:可通过logrotate工具(如搜索结果中提到的/etc/logrotate.d/rsyslog配置)管理日志文件大小和保留时间,避免日志占用过多磁盘空间。

以上方法可实现CentOS回收站操作的日志记录,满足“追踪删除行为”的需求。

0