You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arch Linux下如何启用日志记录用户文件打开明细以查询访问时间

Arch Linux 启用用户文件打开操作审计配置

你之前执行journalctl /usr/bin/geany无法查询到文件打开记录的原因是:systemd journal默认仅记录进程启动/退出、服务运行日志等基础信息,不会默认采集进程打开具体文件的操作,需要额外配置审计规则实现该需求,推荐使用Linux内核原生的auditd审计框架,配置步骤如下:

安装与配置auditd(推荐方案)

  • 安装audit软件包:
    sudo pacman -S audit
  • 启用并启动auditd服务:
sudo systemctl enable --now auditd.service
  • 配置审计规则:
    如果你需要记录全系统所有用户成功打开文件的操作,执行以下命令添加临时规则:
    sudo auditctl -a always,exit -F arch=b64 -S open -S openat -F success=1 -k file_open
    参数说明:
    • arch=b64适配64位系统,32位系统替换为arch=b32
    • open、openat为Linux下打开文件的核心系统调用
    • success=1仅记录打开成功的操作,避免大量失败请求产生冗余日志
    • -k file_open为规则添加自定义标签,方便后续过滤日志
      如果你仅需要监控特定目录的文件打开操作,可添加路径过滤,示例为监控所有用户家目录的文件打开:
      sudo auditctl -a always,exit -F arch=b64 -S open -S openat -F dir=/home -F success=1 -k home_file_open
  • 规则持久化:
    上述配置的规则为临时规则,系统重启后会失效。要永久生效,将你选择的规则写入/etc/audit/rules.d/audit.rules文件,随后重启auditd服务生效:
    sudo systemctl restart auditd.service

日志查询方法

  • 查询所有文件打开操作的审计日志(添加-i参数可将日志中的时间戳、UID等字段转换为易读格式):
    sudo ausearch -i -k file_open
  • 查询特定进程的文件打开记录,例如查询geany的相关操作:
    sudo ausearch -i -k file_open -x geany
  • 查询特定文件的打开记录,例如查询workflows.txt的打开记录:
    sudo ausearch -i -k file_open -f /完整路径/workflows.txt

其他说明

  • 仅规则生效之后的文件打开操作会被记录,你昨天打开workflows.txt的操作无法通过后配置的审计规则回溯查询。
  • auditd默认日志存储在/var/log/audit/目录下,软件包默认已配置日志轮转规则,无需额外调整即可避免日志占用过多磁盘空间。如果全系统监控产生的日志量过大,可调整规则仅监控你需要的目录范围即可。
  • 如果你仅需要查询geany的启动时间而非打开的具体文件,可开启journald日志持久化:修改/etc/systemd/journald.conf中的Storage=persistent,随后执行sudo systemctl restart systemd-journald.service即可,后续重启后不会丢失进程启动记录。

内容的提问来源于stack exchange,提问作者dosfilesystem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:06:03