上一篇
linux如何查看操作记录
- Linux
- 2025-07-24
- 4
Linux查看操作记录可通过
history
查看命令历史,
ausearch
审计日志,或查询
/var/log
中的日志文件如
在Linux系统中,查看操作记录涉及多个维度,包括用户登录、命令执行、文件操作等,以下是详细的方法和工具说明:
用户登录与注销记录
工具/命令 | 功能描述 | 数据来源 | |
---|---|---|---|
last |
显示用户登录历史(按时间倒序) | 用户名、终端、源IP、登录时间、注销时间 | /var/log/wtmp |
lastlog |
显示所有用户的最后一次登录信息 | 用户名、登录时间、终端设备 | /var/log/wtmp (简化版) |
utmpdump |
解析/var/run/utmp 文件 |
当前已登录用户的实时信息 | /var/run/utmp |
示例:
# 查看完整的登录历史 last # 输出类似:user1 pts/0 192.168.1.1 Mon Jan 23 10:00 12:30 (2:30) # 仅查看某用户(如root)的登录记录 last root # 查看当前登录会话 utmpdump # 需安装`utmpdump`工具
命令操作历史
工具/命令 | 功能描述 | 存储位置 |
---|---|---|
history |
显示当前用户的命令历史 | ~/.bash_history (普通用户)/root/.bash_history (root) |
ausearch |
审计框架(auditd)下的命令记录 | /var/log/audit/audit.log |
示例:
# 查看本地命令历史(默认最近500条) history # 输出类似:100 ls -la # 强制将命令历史写入文件 history > ~/command_log.txt # 若审计服务开启,查询sudo命令 ausearch -m USER_COMMAND -fs | grep sudo
文件操作记录
工具/命令 | 功能描述 | 适用场景 |
---|---|---|
ls -l --time=change |
查看文件修改时间 | 检测文件是否被改动 |
find + -exec |
搜索文件变更记录 | 跟踪特定文件操作 |
inotifywait |
实时监控文件系统事件 | 动态捕获操作(需安装inotify-tools ) |
示例:
# 检查文件最近修改时间 ls -l /etc/passwd # 输出类似:-rw-r--r-1 root root 1234 Jan 30 10:00 /etc/passwd # 查找某目录下7天内被修改的文件 find /var/log -type f -mtime -7 # 监控目录变化(需先安装inotify-tools) inotifywait -m /var/log # 实时输出类似:CREATE log/2023.log
sudo操作记录
工具/命令 | 功能描述 | 数据来源 |
---|---|---|
sudo -l |
查看用户可执行的sudo命令 | /etc/sudoers |
grep sudo |
过滤sudo日志 | /var/log/auth.log |
示例:
# 查看当前用户的sudo权限 sudo -l # 输出类似:User user1 may run following commands on host01: (ALL) # 提取所有sudo操作记录 grep 'sudo' /var/log/auth.log # 输出类似:Jan 30 10:05 user1 sudo apt update
系统级操作记录
工具/命令 | 功能描述 | 数据来源 |
---|---|---|
dmesg |
查看内核环缓冲区消息 | 内存(需root权限) |
journalctl |
查询systemd日志 | /var/log/journal/ |
/var/log/ |
系统服务日志集合 | 各服务对应日志文件 |
示例:
# 查看启动时硬件检测信息 dmesg | grep "USB|Disk" # 输出类似:[0.123456] ACPI: Coreboot # 查询最近一小时的系统日志 journalctl --since "1 hour ago" # 查看网络配置更改记录 grep "NetworkManager" /var/log/syslog
日志文件管理
文件路径 | 内容说明 | 权限要求 |
---|---|---|
/var/log/wtmp |
用户登录/注销记录 | root可读 |
/var/log/btmp |
失败的登录尝试 | root可读 |
/var/log/auth.log |
认证相关日志(sudo/SSH) | root可读 |
/var/log/syslog |
系统进程通用日志(Ubuntu) | root可读 |
/var/log/messages |
系统进程通用日志(CentOS) | root可读 |
常见问题(FAQs)
如何清除自己的命令历史记录?
解答:
使用命令 history -c
可删除当前会话的命令历史缓存,但不会修改已保存的 .bash_history
文件,若要彻底清除,需删除或清空该文件:
rm ~/.bash_history # 删除文件(慎用!)
如何查看特定用户的操作记录?
解答:
- 登录记录:
last 用户名
或cat /var/log/wtmp | lastlog -b
- 命令历史:若有权访问用户主目录,可查看
~/.bash_history
(需先转换为可读格式):cp ~/.bash_history ~/command_history.txt && less ~/command_history.txt