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

发布时间:2026/8/18 10:11:56
Linux 查找用户信息及登录详情的十二种方法 在 Linux 系统中了解用户账户信息和登录信息对于系统管理和安全非常重要。本文将介绍在 Linux 9 中查看用户账户信息、登录详情、以及在系统中执行的操作的 12 种常用方法。如需在 Linux 中创建用户可以使用useradd命令更改已创建账户的属性可以使用usermod命令。本章包含的主题如下id命令 - 显示用户及组 IDgroups命令 - 显示用户组成员pinky命令 - 显示用户信息getent命令 - 从系统数据库中获取用户信息grep命令 - 在文件中搜索模式或特定文本lslogins命令 - 显示用户信息users命令 - 列出当前登录系统的用户who命令 - 显示当前登录用户的信息w命令 - 显示当前登录的用户活动last命令 - 显示最近的登录会话lastb命令 - 显示失败的登录尝试lastlog命令 - 列出用户登录信息38.1 idid是一个简单的命令行实用程序用于显示当前用户或指定用户的用户及组的 ID 信息aiopsautomate-host ~]$ id uid1000(aiops) gid1000(aiops) groups1000(aiops),10(wheel) [aiopsautomate-host ~]$ id root uid0(root) gid0(root) groups0(root)38.2 groupsgroups命令显示用户所属的组包括主组和附加组[aiopsautomate-host ~]$ groups aiops aiops : aiops wheel38.3 pinkypinky命令用于在 Linux 系统中搜索用户信息包括登录名、真实姓名、终端、空闲时间、登录时间和其他相关细节[aiopsautomate-host ~]$ pinky aiops Login Name TTY Idle When Where aiops aiops pts/1 2023-07-09 21:57 10.211.55.238.4 getentgetent命令用于从各种数据库包括系统用户和组数据库检索信息。可用于检索存储在数据库文件如/etc/passwd、/etc/group、/etc/hosts等中的用户、组、主机、网络、协议和其他系统实体的信息。通过passwd数据库和用户名获取用户的帐户详细信息如下所示[aiopsautomate-host ~]$ getent passwd aiops aiops:x:1000:1000:aiops:/home/aiops:/bin/bash38.5 grepgrep是一个功能强大的命令用于搜索文件中的模式或特定文本。它根据匹配模式从文本中过滤和提取行。“grep“ 即 “全局正则表达式打印”Global Regular Expression Print。可以使用grep从系统帐户文件中查找指定用户的信息/etc/passwd如下所示[aiopsautomate-host ~]$ grep -i aiops /etc/passwd aiops:x:1000:1000:aiops:/home/aiops:/bin/bash38.6 lsloginslslogins命令显示系统中已知用户的信息包括用户名、UID用户 ID、GID组 ID、主目录、shell、上次登录时间等详细信息具体取决于所使用的选项和系统配置[aiopsautomate-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 : TTYpts/1 ; PWD/home/aiops ; USERroot ; COMMAND/bin/dnf install finger 22:13 sudo[1807]: pam_unix(sudo:session): session opened for user root(uid0) by aiops(uid1000) 22:13 sudo[1807]: pam_unix(sudo:session): session closed for user root [aiopsautomate-host ~]$ lslogins -u UID USER PROC PWD-LOCK PWD-DENY LAST-LOGIN GECOS 0 root 117 11:18 root 1000 aiops 8 21:57 aiops38.7 usersusers命令用于显示 Linux 系统上当前登录用户的列表[aiopsautomate-host ~]$ users aiops38.8 whowho命令显示登录到系统的用户包括用户名、终端、登录时间和用户登录的远程主机[aiopsautomate-host ~]$ who -u aiops pts/1 2023-07-09 21:57 . 1707 (10.211.55.2)38.9 ww命令显示当前登录用户及其活动的摘要其中显示的登录会话包括用户名、终端、登录时间、空闲时间、JCPU所有进程使用的总 CPU 时间、PCPU当前进程使用的 CPU 时间以及终端上运行的命令或进程[aiopsautomate-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 w38.10 lastlast命令显示最近登录会话的列表包括已登录的用户、登录时间以及用于登录的终端或远程主机的信息[aiopsautomate-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选项[aiopsautomate-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 202338.11 lastblastb命令用于显示系统上上次失败的登录尝试的列表。它从记录失败登录尝试的系统日志文件中读取通常存储在/var/log/btmp中[aiopsautomate-host ~]$ sudo lastb38.12 lastloglastlog命令用于查找系统上所有用户或特定用户的最新登录信息的详细信息该命令提供有关每个用户上次登录时间和位置的详细信息[aiopsautomate-host ~]$ lastlog -u aiops Username Port From Latest aiops pts/0 10.211.55.2 Sun Jul 9 22:35:53 0800 202338.13 总结本文介绍了在 Linux 系统上查找用户和登录详情的各种方法。欢迎通过公众号提出问题或分享你的想法。