百度
360搜索
搜狗搜索

Linux如何查命令是谁执行的详细介绍

在 Linux 系统中,查询命令是谁执行的可以通过以下几种常用方法实现,具体取决于你想要获取的信息类型(如当前登录用户、历史登录记录、命令执行历史等):

一、查看当前登录用户及执行的命令

如果需要查看 当前系统中所有登录用户正在执行的命令,可以使用以下命令:
bash

w

  • 输出说明
    • 第一行显示系统时间、运行时间、登录用户数和平均负载。
    • 后续每行代表一个用户,包含用户名、终端设备、登录时间、空闲时间、IP 地址以及当前正在执行的命令(COMMAND 列)。

二、查看登录用户的基本信息

如果只需查看 当前登录的用户列表(不包含正在执行的命令),可以使用:
bash

  • 输出格式:用户名 终端设备 登录时间 登录 IP(例如:user1 tty1 2025-04-15 10:00 (:0))。

三、查看历史登录记录

如果需要追溯 用户过去的登录记录(包括登录时间、IP、注销时间等),可以使用:
bash

last

  • 数据来源:读取 /var/log/wtmp 文件(需管理员权限)。
  • 输出示例:plaintext
    user1 tty1 :0           Mon Apr 15 10:00 - 10:30  (00:30)

    user2 pts/0 192.168.1.1 Mon Apr 15 09:30 - 09:45 (00:15)

四、通过命令历史记录查找

如果已知 执行过的命令内容,想知道是谁执行的,可以结合用户的历史命令记录(~/.bash_history)和登录日志分析:

  1. 查看当前用户的命令历史(仅当前用户自己的记录):bash

  2. 查看所有用户的历史记录(需权限,且需手动检查每个用户的 ~/.bash_history 文件):bash
      /home/*/.bash_history   

    • 注意:用户可以删除自己的历史记录,因此该方法不保证完整性。

五、通过系统日志查询(适合管理员)

对于管理员,更可靠的方式是通过 系统日志文件 记录的用户操作来追溯,例如:

  1. 认证日志(记录用户登录登出、sudo 操作等):
    bash
      /var/log/auth.log     

    /var/log/auth.log

    • 关键字段:sudo 命令会记录执行者(如 user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/usr/bin/apt-get install)。

  2. 审计日志(需启用审计服务,如 auditd):
    bash
     ausearch    

总结

  • 实时查看当前用户及命令:用 w
  • 历史登录记录:用 last
  • 命令执行历史:结合 history 和用户目录下的历史文件(但存在局限性)。
  • 管理员级追溯:通过 /var/log/auth.log 等系统日志或审计工具。

根据具体场景选择合适的方法,系统日志和审计工具是最可靠的方式,尤其适用于安全审计场景。

阅读更多 >>>  软件白屏为什么还能用

网站数据信息

"Linux如何查命令是谁执行的"浏览人数已经达到17次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:Linux如何查命令是谁执行的的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!