Linux 9 查找用户信息及登录详情的十二种方法

  1. Linux 9 查找用户信息及登录详情的十二种方法

在 Linux 系统中,了解用户账户信息和登录信息对于系统管理和安全非常重要。本文将介绍在 Linux 9 中查看用户账户信息、登录详情、以及在系统中执行的操作的 12 种常用方法。

如需在 Linux 中创建用户,可以使用 useradd 命令;更改已创建账户的属性,可以使用 usermod 命令。

本章包含的主题如下:

  • id 命令 - 显示用户及组 ID
  • groups 命令 - 显示用户组成员
  • pinky 命令 - 显示用户信息
  • getent 命令 - 从系统数据库中获取用户信息
  • grep 命令 - 在文件中搜索模式或特定文本
  • lslogins 命令 - 显示用户信息
  • users 命令 - 列出当前登录系统的用户
  • who 命令 - 显示当前登录用户的信息
  • w 命令 - 显示当前登录的用户活动
  • last 命令 - 显示最近的登录会话
  • lastb 命令 - 显示失败的登录尝试
  • lastlog 命令 - 列出用户登录信息

38.1 id

id 是一个简单的命令行实用程序,用于显示当前用户或指定用户的用户及组的 ID 信息:

aiops@automate-host ~]$ id
uid=1000(aiops) gid=1000(aiops) groups=1000(aiops),10(wheel)

[aiops@automate-host ~]$ id root
uid=0(root) gid=0(root) groups=0(root)

38.2 groups

groups 命令显示用户所属的组,包括主组和附加组:

[aiops@automate-host ~]$ groups aiops
aiops : aiops wheel

38.3 pinky

pinky 命令用于在 Linux 系统中搜索用户信息,包括登录名、真实姓名、终端、空闲时间、登录时间和其他相关细节:

[aiops@automate-host ~]$ pinky aiops
Login    Name                 TTY      Idle   When             Where
aiops    aiops                pts/1           2023-07-09 21:57 10.211.55.2

38.4 getent

getent 命令用于从各种数据库(包括系统用户和组数据库)检索信息。可用于检索存储在数据库文件(如 /etc/passwd/etc/group/etc/hosts 等)中的用户、组、主机、网络、协议和其他系统实体的信息。

通过 passwd 数据库和用户名,获取用户的帐户详细信息,如下所示:

[aiops@automate-host ~]$ getent passwd aiops
aiops:x:1000:1000:aiops:/home/aiops:/bin/bash

38.5 grep

grep 是一个功能强大的命令,用于搜索文件中的模式或特定文本。它根据匹配模式从文本中过滤和提取行。“grep“ 即 “全局正则表达式打印”(Global Regular Expression Print)。

可以使用 grep 从系统帐户文件中查找指定用户的信息:/etc/passwd,如下所示:

[aiops@automate-host ~]$ grep -i aiops /etc/passwd
aiops:x:1000:1000:aiops:/home/aiops:/bin/bash

38.6 lslogins

lslogins 命令显示系统中已知用户的信息,包括用户名、UID(用户 ID)、GID(组 ID)、主目录、shell、上次登录时间等详细信息,具体取决于所使用的选项和系统配置:

[aiops@automate-host ~]$ lslogins -u aiops
Username:                           aiops
UID:                                1000
Gecos field:                        aiops
Home directory:                     /home/aiops
Shell:                              /bin/bash
No login:                           no
Primary group:                      aiops
GID:                                1000
Supplementary groups:               wheel
Supplementary group IDs:            10
Last login:                         21:57
Last terminal:                      pts/1
Last hostname:                      10.211.55.2
Hushed:                             no
Running processes:                  8

Last logs:
22:13 sudo[1807]:    aiops : TTY=pts/1 ; PWD=/home/aiops ; USER=root ; COMMAND=/bin/dnf install finger
22:13 sudo[1807]: pam_unix(sudo:session): session opened for user root(uid=0) by aiops(uid=1000)
22:13 sudo[1807]: pam_unix(sudo:session): session closed for user root

[aiops@automate-host ~]$ lslogins -u
 UID USER    PROC PWD-LOCK PWD-DENY LAST-LOGIN GECOS
   0 root     117                        11:18 root
1000 aiops      8                        21:57 aiops

38.7 users

users 命令用于显示 Linux 系统上当前登录用户的列表:

[aiops@automate-host ~]$ users
aiops

38.8 who

who 命令显示登录到系统的用户,包括用户名、终端、登录时间和用户登录的远程主机:

[aiops@automate-host ~]$ who -u
aiops    pts/1        2023-07-09 21:57   .          1707 (10.211.55.2)

38.9 w

w 命令显示当前登录用户及其活动的摘要,其中显示的登录会话,包括用户名、终端、登录时间、空闲时间、JCPU(所有进程使用的总 CPU 时间)、PCPU(当前进程使用的 CPU 时间)以及终端上运行的命令或进程:

[aiops@automate-host ~]$ w
 22:31:21 up 11:14,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
aiops    pts/1     21:57    0.00s  0.13s  0.00s w

38.10 last

last 命令显示最近登录会话的列表,包括已登录的用户、登录时间以及用于登录的终端或远程主机的信息:

[aiops@automate-host ~]$ last
aiops    pts/1        10.211.55.2      Sun Jul  9 21:57   still logged in
aiops    pts/0        10.211.55.2      Sun Jul  9 11:18 - 22:29  (11:10)
...

若要显示指定时间登录的所有用户,需要使用 -p 选项:

[aiops@automate-host ~]$ last -ap now
aiops    pts/1        Sun Jul  9 21:57   still logged in    10.211.55.2
reboot   system boot  Sun Jul  9 11:16   still running      5.14.0-162.18.1.el9_1.aarch64

wtmp begins Sat Mar 18 12:24:04 2023

38.11 lastb

lastb 命令用于显示系统上上次失败的登录尝试的列表。它从记录失败登录尝试的系统日志文件中读取,通常存储在 /var/log/btmp 中:

[aiops@automate-host ~]$ sudo lastb

38.12 lastlog

lastlog 命令用于查找系统上所有用户或特定用户的最新登录信息的详细信息,该命令提供有关每个用户上次登录时间和位置的详细信息:

[aiops@automate-host ~]$ lastlog -u aiops
Username         Port     From                                       Latest
aiops            pts/0    10.211.55.2                               Sun Jul  9 22:35:53 +0800 2023

38.13 总结

本文介绍了在 Linux 系统上查找用户和登录详情的各种方法。欢迎通过公众号提出问题或分享你的想法。

posted @ 2023-09-04 16:05  寻梦99  阅读(441)  评论(0)    收藏  举报