当前位置:首页 > Linux > 正文

linux如何查看操作记录

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

示例

linux如何查看操作记录  第1张

# 查看本地命令历史(默认最近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
0