一个Linux系统 admin 应该密切关注当前登录 Linux 系统的人员以及他们在做什么。 我们已经知道如何 查找最后登录的用户 在 Linux 中。 您将如何识别当前谁登录了您的 Linux 系统以及他们在做什么? 简单的! 本教程列出了在 Linux 中查找当前登录用户的各种方法。
1. 使用 Linux 查找当前登录的用户 w
命令
在 Linux 操作系统中,有一个特殊的单字母命令,称为 w
这可以帮助您查找谁已登录以及他们在系统中正在做什么。 这是最常用的命令行工具,用于显示有关当前服务器上的用户及其进程的信息。
这 w
当您管理许多用户经常访问的 Linux 服务器时,该命令通常很有用。 您可以跟踪所有这些,而无需安装任何其他工具或应用程序。
这 w
命令显示各种有用的详细信息,包括以下内容:
- 当前时间,
- 系统运行了多长时间,
- 当前有多少用户登录,
- 以及过去 1、5 和 15 分钟的系统负载平均值。
这 w
命令从 /var/run/utmp
文件并从 /proc
文件。
现在让我们看看如何使用 w
命令来显示谁在你的 Linux 机器上登录以及他们在做什么。
的典型用法 w
命令是:
$ w [options] user
当你不带任何选项运行 w 命令时,它会显示你 Linux 系统中所有当前登录的用户:
$ w
样本输出:
08:42:30 up 28 min, 2 users, load average: 1.30, 0.87, 0.45
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
sk tty1 - 08:41 42.00s 0.10s 0.06s -bash
ostechni pts/1 192.168.225.37 08:42 6.00s 0.09s 0.01s w
w
命令正如您在上面的输出中看到的,当前有两个用户 (sk 和 骨肉) 登录到我的 Ubuntu 服务器。 这 w
命令显示各个用户的以下详细信息:
- 登录名,
- tty 名称,
- 用户登录的源 IP 地址,
- 登录时间,
- 空闲时间,
- JCPU 时间(连接到 tty 的所有进程使用的时间),
- PCPU时间(当前进程使用的时间),
- 以及他们当前进程的命令行。
如果要显示特定登录用户(例如 ostechnix)的详细信息,则命令为:
$ w ostechnix
08:51:36 up 37 min, 2 users, load average: 1.12, 1.06, 0.76
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
ostechni pts/1 192.168.225.37 08:42 0.00s 0.09s 0.01s w ostech
您可以使用从输出中省略标题 -h
选项:
$ w -h
sk tty1 - 08:41 16:13 0.10s 0.06s -bash
ostechni pts/1 192.168.225.37 08:42 1.00s 0.09s 0.01s w -h
您还可以显示 IP 地址而不是主机名 "FROM"
(远程主机名)字段使用 -i
选项:
$ w -i
您可能不想打印所有详细信息。 如果是这样,您可以使用排除登录时间、JCPU 或 PCPU 时间 -s
(--short
) 选项:
$ w -s
09:02:50 up 48 min, 2 users, load average: 0.31, 0.79, 0.84
USER TTY FROM IDLE WHAT
sk tty1 - 21:02 -bash
ostechni pts/1 192.168.225.37 1.00s w -s
有关更多详细信息,请查看手册页:
$ man w
或者,参考帮助部分:
$ w --help
Usage:
w [options]
Options:
-h, --no-header do not print header
-u, --no-current ignore current process username
-s, --short short format
-f, --from show remote hostname field
-o, --old-style old style output
-i, --ip-addr display IP address instead of hostname (if possible)
--help display this help and exit
-V, --version output version information and exit
For more details see w(1).
2.显示所有登录用户使用 who
命令
这 who
command 是另一个命令行工具,用于显示有关当前登录 Linux 机器的用户的信息。
如果你跑 who
没有任何选项的命令,它将显示所有登录的用户:
$ who
样本输出:
sk tty1 2021-01-12 08:41
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
正如您在上面的输出中看到的, who
命令显示终端设备的用户名、类型(例如 tty
或者 pts
) 会话发生的位置、启动时间和用户登录的源 IP 地址。
您可以过滤特定用户的详细信息 grep
命令:
$ who | grep ostechnix
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
上面的命令将查找给定的用户 ostechnix 是否登录。
如果您只想显示当前终端会话的信息,请运行:
$ who am i
ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
请注意单词之间的空格。 如果你执行上面的命令没有任何空格,它只会显示用户名:
$ whoami
ostechnix
这 who
command 几乎没有其他选项可以获取自定义输出。
为了 example,您可以使用显示当前登录的所有可用信息 -a
旗帜:
$ who -a
样本输出:
system boot 2021-01-12 08:14
sk - tty1 2021-01-12 08:41 00:59 1463
run-level 5 2021-01-12 08:15
ostechnix + pts/1 2021-01-12 08:42 . 1477 (192.168.225.37)
LOGIN tty6 2021-01-12 08:41 1366 id=tty6
要使用列标题显示所有可用信息,请使用 -H
旗帜:
$ who -a -H
NAME LINE TIME IDLE PID COMMENT EXIT
system boot 2021-01-12 08:14
sk - tty1 2021-01-12 08:41 00:59 1463
run-level 5 2021-01-12 08:15
ostechnix + pts/1 2021-01-12 08:42 . 1477 (192.168.225.37)
LOGIN tty6 2021-01-12 08:41 1366 id=tty6
有关更多详细信息,请使用以下任一命令参考 who 命令的手册页和帮助部分:
$ man who
$ who --help
3.打印登录用户 users
命令
这 users
命令打印当前登录到当前主机系统的用户的用户名。
要显示 Linux 机器中所有登录用户的列表,请运行:
$ users
ostechnix sk
要获得帮助,请运行以下任一命令:
$ man users
$ users --help
4.查看登录用户 last
命令
这 last
命令通常显示自 /var/log/wtmp
文件已创建。
$ last
当前登录的用户列表显示在顶部。
ostechni pts/1 192.168.225.37 Tue Jan 12 08:42 still logged in
sk tty1 Tue Jan 12 08:41 still logged in
ostechni tty1 Tue Jan 12 08:41 - 08:41 (00:00)
sk pts/1 192.168.225.37 Tue Jan 12 08:41 - 08:41 (00:00)
[...]
如需帮助,请参阅手册页或使用 --help
选项:
$ man last
$ last --help
5. 使用id命令查找登录Linux系统的人
这 id
命令用于打印指定 USER 的用户和组信息,或者当 USER 省略时为当前用户打印用户和组信息。
要在当前会话中打印当前登录的用户,请运行 id
命令与 -un
选项:
$ id -un
ostechnix
这与 whoami
命令。
要获得帮助,请执行以下操作:
$ man id
$ id --help
在大多数 Linux 发行版中,所有上述工具都默认可用。 还有一个命令行工具可用于查找登录 Linux 系统的用户。 它默认不安装,但在大多数 Linux 发行版的默认存储库中可用。
6.使用finger命令列出登录用户
手指 是一个命令行用户信息查找实用程序。 显示用户的登录名、真实姓名、终端名称和写入状态、空闲时间、登录时间、办公地点和办公电话等。
在某些 Linux 发行版中默认不安装 finger 程序。 您可以使用 apt 包管理器在 Debian、Ubuntu 系统中安装手指,如下所示:
$ sudo apt install finger
安装完成后,运行 finger 命令在 Linux 系统中查找已登录的用户:
$ finger
样本输出:
Login Name Tty Idle Login Time Office Office Phone
ostechnix ostechnix pts/1 Jan 12 08:42 (192.168.225.37)
sk *tty1 3:17 Jan 12 08:41
显示有关特定用户的信息:
$ finger ostechnix
样本输出:
Login: ostechnix Name: ostechnix
Directory: /home/ostechnix Shell: /bin/bash
On since Tue Jan 12 08:42 (UTC) on pts/1 from 192.168.225.37
2 seconds idle
No mail.
No Plan.
这些是在 Linux 系统中查找当前登录用户的几种方法。 了解谁已登录并查找他们在您的系统中所做的事情在故障排除时会很有帮助。 我希望上述方法之一对您有所帮助。
相关阅读:
- 如何在 Linux 中列出所有用户
- 如何在 Linux 中监控用户活动
- 如何限制用户对 Linux 系统的访问