识别谁在您的 Linux 系统上登录的 4 种方法

举报
Tiamo_T 发表于 2021/11/29 11:51:00 2021/11/29
【摘要】 作为系统管理员,您可能想知道在任何给定时间点都有谁在系统上。您可能还想知道他们在做什么。在本文中,让我们了解 4 种不同的方法来识别谁在您的 Linux 系统上。

作为系统管理员,您可能想知道在任何给定时间点都有谁在系统上。您可能还想知道他们在做什么。在本文中,让我们了解 4 种不同的方法来识别谁在您的 Linux 系统上。

1.使用w获取登录用户的运行进程

w 命令用于显示登录的用户名和他们在做什么。该信息将从 /var/run/utmp 文件中读取。w 命令的输出包含以下列:

  • 用户名
  • 用户的机器号或 tty 号
  • 远程机器地址
  • 用户登录时间
  • 空闲时间(不可用时间)
  • 连接到 tty 的所有进程使用的时间(JCPU 时间)
  • 当前进程使用的时间(PCPU时间)
  • 用户当前正在执行的命令

 
以下选项可用于 w 命令:

  • -h 忽略头信息
  • -u 显示平均负载(正常运行时间输出)
  • -s 删除 JCPU、PCPU 和登录时间。

 

$ w
 23:04:27 up 29 days,  7:51,  3 users,  load average: 0.04, 0.06, 0.02
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ramesh   pts/0    dev-db-server        22:57    8.00s  0.05s  0.01s sshd: ramesh [priv]
jason    pts/1    dev-db-server        23:01    2:53   0.01s  0.01s -bash
tiamo     pts/2    dev-db-server        23:04    0.00s  0.00s  0.00s w

$ w -h
ramesh   pts/0    dev-db-server        22:57   17:43   2.52s  0.01s sshd: ramesh [priv]
jason    pts/1    dev-db-server        23:01   20:28   0.01s  0.01s -bash
tiamo     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -h

$ w -u
 23:22:06 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
ramesh   pts/0    dev-db-server        22:57   17:47   2.52s  2.49s top
jason    pts/1    dev-db-server        23:01   20:32   0.01s  0.01s -bash
tiamo     pts/2    dev-db-server        23:04    0.00s  0.03s  0.00s w -u

$ w -s
 23:22:10 up 29 days,  8:08,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM               IDLE WHAT
ramesh   pts/0    dev-db-server        17:51  sshd: ramesh [priv]
jason    pts/1    dev-db-server        20:36  -bash
tiamo     pts/2    dev-db-server         1.00s w -s

2.使用who和users命令获取登录用户的用户名和进程

who 命令用于获取当前登录的用户名列表。 who 命令的输出包含以下列:用户名、tty 编号、日期和时间、机器地址。

$ who
ramesh pts/0        2009-03-28 22:57 (dev-db-server)
jason  pts/1        2009-03-28 23:01 (dev-db-server)
tiamo   pts/2        2009-03-28 23:04 (dev-db-server)

 
要获取当前登录的所有用户名的列表,请使用以下命令:

$ who | cut -d' ' -f1 | sort | uniq
tiamo
jason
ramesh

 

用户命令

users 命令用于打印当前主机中所有当前登录的用户名。它是除了帮助和版本之外没有任何选项的命令之一。如果用户使用'n'个终端,用户名将在输出中显示'n'个次数。

$ users
tiamo jason ramesh

3.使用whoami获取你当前登录的用户名

whoami命令用于打印登录的用户名。

$ whoami
tiamo

 
whoami 命令提供与id -un相同的输出,如下所示:

$ id -un
tiamo

 
who am i命令将显示登录用户名和当前 tty 详细信息。此命令的输出包含以下列:登录用户名、tty 名称、当前时间、日期和此用户发起连接的 IP 地址。

$ who am i
tiamo     pts/2        2009-03-28 23:04 (dev-db-server)

$ who mom likes
tiamo     pts/2        2009-03-28 23:04 (dev-db-server)

Warning: Don't try "who mom hates" command.

此外,如果您对其他用户执行 su,此命令将提供有关登录用户名详细信息的信息。

4.随时获取用户登录历史

last 命令将提供特定用户名的登录历史记录。如果我们不为此命令提供任何参数,它将列出所有用户的登录历史记录。默认情况下,此信息将从 /var/log/wtmp 文件中读取。此命令的输出包含以下列:

  • 用户名
  • Tty 设备号
  • 登录日期和时间
  • 登出时间
  • 总工作时间
$ last jason
jason   pts/0        dev-db-server   Fri Mar 27 22:57   still logged in
jason   pts/0        dev-db-server   Fri Mar 27 22:09 - 22:54  (00:45)
jason   pts/0        dev-db-server   Wed Mar 25 19:58 - 22:26  (02:28)
jason   pts/1        dev-db-server   Mon Mar 16 20:10 - 21:44  (01:33)
jason   pts/0        192.168.201.11  Fri Mar 13 08:35 - 16:46  (08:11)
jason   pts/1        192.168.201.12  Thu Mar 12 09:03 - 09:19  (00:15)
jason   pts/0        dev-db-server   Wed Mar 11 20:11 - 20:50  (00:39
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。