在Linux系统中,查看用户操作记录是系统管理和安全审计的关键任务,无论是排查故障、监控异常行为,还是满足合规要求,管理员都需要掌握多种方法,以下是详细的操作指南,涵盖常用命令、日志文件及高级审计工具,所有操作均需root权限(使用sudo
或切换root用户)。
查看单个用户的命令历史(history)
适用场景:追溯某用户执行的命令。
实现方法:
-
直接查看当前用户的命令历史:
history
输出示例:
1024 cd /var/log 1025 cat syslog 1026 sudo reboot
-
查看其他用户的命令历史:
每个用户的命令记录存储在~/.bash_history
文件中:sudo cat /home/username/.bash_history
注意:
- 默认仅存储最近1000条命令(由
HISTSIZE
环境变量控制)。 - 用户可能清空记录(
history -c
),或禁用历史记录(设置HISTFILE=/dev/null
)。
- 默认仅存储最近1000条命令(由
查看用户登录记录(last命令)
适用场景:审计用户登录/登出时间及来源IP。
命令示例:
last
输出示例:
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
,添加:
-a always,exit -F arch=b64 -F auid=1000 -S execve
重启服务:sudo systemctl restart auditd
其他工具补充
-
acct
(进程统计工具)
安装:sudo apt install acct
查看命令记录:sudo lastcomm -u user1 # 显示user1执行过的命令
-
who
和w
who
:当前登录用户列表。w
:当前登录用户及正在执行的命令。
总结与建议
- 基础排查:优先使用
history
和last
,快速获取命令和登录历史。 - 安全审计:依赖系统日志(
/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