一个 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
正如你在上面的输出中看到的,目前有两个用户(斯克 和 骨科) 登录到我的 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)
上面的命令将查找给定的用户 骨科 是否登录。
如果只想显示当前终端会话的信息,请运行:
$ who am i ostechnix pts/1 2021-01-12 08:42 (192.168.225.37)
请注意单词之间的空格。 如果不加空格执行上面的命令,它只会显示用户名:
$ whoami ostechnix
这 who
命令几乎没有其他选项来获得自定义输出。
例如,您可以使用显示当前登录的所有可用信息 -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
命令通常会显示所有从 Linux 机器上登录和退出的用户 /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 系统中安装finger,如下所示:
$ 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 系统的访问
查找登录用户LinuxLinux 管理Linux 基础Linux 命令Linux 用户管理