Linux如何查询用户操作日志

使用history命令查看当前用户的命令历史记录,通过last命令检查用户登录日志,查阅/var/log/auth.log等系统日志获取详细操作信息,管理员可用auditd框架进行高级审计。

在Linux系统中,查看用户操作记录是系统管理和安全审计的关键任务,无论是排查故障、监控异常行为,还是满足合规要求,管理员都需要掌握多种方法,以下是详细的操作指南,涵盖常用命令、日志文件及高级审计工具,所有操作均需root权限(使用sudo或切换root用户)。

Linux如何查询用户操作日志


查看单个用户的命令历史(history)

适用场景:追溯某用户执行的命令。
实现方法

  1. 直接查看当前用户的命令历史

    history

    输出示例:

    1024  cd /var/log
    1025  cat syslog
    1026  sudo reboot
  2. 查看其他用户的命令历史
    每个用户的命令记录存储在~/.bash_history文件中:

    sudo cat /home/username/.bash_history

    注意

    • 默认仅存储最近1000条命令(由HISTSIZE环境变量控制)。
    • 用户可能清空记录(history -c),或禁用历史记录(设置HISTFILE=/dev/null)。

查看用户登录记录(last命令)

适用场景:审计用户登录/登出时间及来源IP。
命令示例

last

输出示例:

Linux如何查询用户操作日志

user1   pts/0        192.168.1.100   Mon Oct 10 09:15 - 12:30 (03:15)
root    tty1                          Mon Oct 10 08:00   still logged in

关键参数

  • last -x:显示关机/重启记录。
  • last -i:显示IP地址(替代主机名)。
  • last username:仅查看指定用户的记录。
    数据来源/var/log/wtmp(二进制文件,不可直接编辑)。

分析系统日志文件

系统日志是用户操作的权威记录,主要文件如下:

认证日志(用户登录/授权)

  • Ubuntu/Debian/var/log/auth.log
  • CentOS/RHEL/var/log/secure

查看示例

sudo grep "user1" /var/log/auth.log
Oct 10 09:15:00 server sshd[1234]: Accepted password for user1 from 192.168.1.100 port 54322
Oct 10 12:30:00 server sudo: user1 : TTY=pts/0 ; COMMAND=/sbin/reboot

系统日志(syslog)

路径:/var/log/syslog/var/log/messages
用途:记录所有系统级事件,包括用户通过sudo执行的命令。

sudo grep "COMMAND" /var/log/syslog

高级审计工具(auditd)

适用场景:实时监控特定用户或文件的操作,满足企业级安全审计需求。

安装与启动

sudo apt install auditd         # Debian/Ubuntu
sudo yum install audit          # CentOS/RHEL
sudo systemctl start auditd && sudo systemctl enable auditd

监控指定用户的所有操作

sudo auditctl -a exit,always -F arch=b64 -F auid=1000 -S execve
  • -F auid=1000:监控用户ID为1000的用户(通过id -u username获取UID)。
  • -S execve:记录执行的命令。

查看审计日志

sudo ausearch -ua 1000 -i       # 按用户ID查询(-i显示可读信息)
sudo aureport -x --summary      # 生成可执行命令报告

日志路径/var/log/audit/audit.log

永久监控配置

编辑/etc/audit/rules.d/audit.rules,添加:

Linux如何查询用户操作日志

-a always,exit -F arch=b64 -F auid=1000 -S execve

重启服务:sudo systemctl restart auditd


其他工具补充

  1. acct(进程统计工具)
    安装:sudo apt install acct
    查看命令记录:

    sudo lastcomm -u user1   # 显示user1执行过的命令
  2. whow

    • who:当前登录用户列表。
    • w:当前登录用户及正在执行的命令。

总结与建议

  • 基础排查:优先使用historylast,快速获取命令和登录历史。
  • 安全审计:依赖系统日志(/var/log/auth.log/var/log/secure)。
  • 合规要求:部署auditd实现精细化监控。
  • 注意事项
    • 日志可能被轮转(如logrotate),长期记录需配置归档。
    • 敏感操作建议结合多工具验证(如auditd+系统日志)。
    • 定期备份日志,防止恶意篡改。

引用说明: 参考Linux官方文档(kernel.org)、auditd手册页(auditd.org)及Red Hat系统管理指南,实践命令基于Ubuntu 22.04和CentOS 9环境验证。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/32055.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月20日 09:39
下一篇 2025年6月20日 09:51

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN