如何在 Linux 中查找当前登录的用户

一个 Linux 系统 admin 应该留意谁当前登录到 Linux 系统以及他们在做什么。 我们已经知道如何 查找最后登录的用户 在 Linux 中。 您将如何识别此刻谁登录了您的 Linux 系统以及他们在做什么? 简单! 本教程列出了在 Linux 中查找当前登录用户的各种方法。

内容

  1. 1.在Linux中使用w命令查找当前登录的用户
  2. 2.使用who命令显示所有登录的用户
  3. 3.使用users命令打印登录用户
  4. 4. 查看登录用户的最后一条命令
  5. 5. 使用 id 命令查找谁登录了 Linux 系统
  6. 6.用finger命令列出登录用户

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
使用 Linux 查找当前登录的用户 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 命令显示 Linux 中当前登录的用户

正如你在上面的输出中看到的, 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

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 用户管理