在Linux中查找用户帐户信息和登录详细信息的11种方法

在Linux系统中,用户帐户和登录详细信息对于系统管理和安全非常重要。本文将介绍 11 种在 Linux 系统查找用户相关信息的有用方法。这里,我们会讲解在系统中获取一个用户账户详细信息、展示登录详细信息以及用户行为数据的命令。

首先,我们会来看看如何使用命令查找一个用户的账户信息,然后再来跟大家讲解查看登录详细信息的那些命令。

01id命令

id 是用来展示一个实时活动用户以及组 ID 的命令行工具,如下所示:

[root@localhost ~]# id llz
uid=1000(llz) gid=1000(llz) groups=10(wheel),1000(llz)

02groups 命令

groups 命令可以被用来展示一个用户所归属的所有组的信息,像下面这样:

[root@localhost ~]# groups llz
llz : llz wheel

03finger命令

finger 命令可以被用来查找 Linux 上的一个用户的信息。在许多 Linux 系统上,它并没被预装。

想要在你的系统上安装它,可以在终端里运行这个命令:


$ sudo apt install finger#Debian/Ubuntu 
 
$ sudo yum install finger#RHEL/CentOS 
 
$ sudo dnf install finger#Fedora 22+

它会显示出一个用户的真实名称、主目录、shell,登录的名称以及时间,还有如下所示的许多信息:

$ finger tecmintLogin: tecmint        Name: TecMint 
Directory: /home/tecmint            Shell: /bin/bash 
On since Fri Sep 22 10:39 (IST) on tty8 from :0 
2 hours 1 minute idle 
No mail. 
No Plan.

04getent命令

getent 是一个可以从特定系统数据库的 Name Service Switch (NSS 名字服务交换器) 库获取到信息的命令行工具。

要获取一个用户账户的详细信息,可以像下面这样使用 passwd 数据库和 username 来做到。

[root@localhost ~]# getent passwd llz
llz:x:1000:1000:llz:/home/llz:/bin/bash

05grep命令

grep 命令是一个强大的模式搜索工具,可以在绝大多数 Linux 系统上使用。你可以用它来从系统账户文件 /etc/passwd 中查找出关于一个特定用户的信息,如下所示:

[root@localhost ~]# grep -i llz /etc/passwd
llz:x:1000:1000:llz:/home/llz:/bin/bash

06lslogins命令

lslogins 命令会展示出系统中现有用户的相关信息, -u 标记可用来标识只展示用户的账户。

[root@localhost ~]# lslogins -u
 UID USER PROC PWD-LOCK PWD-DENY LAST-LOGIN GECOS
   0 root  224        0        0      21:34 root
1000 llz     0        0        0 2022-Nov16 llz

07users命令

users 命令会展示当前已经登录系统的所有用户的用户名,像这样:

[root@localhost ~]# users
root

08who命令

who 命令可以用来展示那些登录了系统的用户,包括了它们是从哪里连接到系统上来的终端信息。

[root@localhost ~]# who -u
root     pts/1        2023-07-18 21:34   .         56337 (10.65.30.83)

09w command

w 命令会展示出所有登录了系统的用户,还有它们都做了些什么事情。

[root@localhost ~]# w
 08:20:38 up 6 days, 23:33,  1 user,  load average: 0.08, 0.02, 0.01
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1     21:34    1.00s  0.07s  0.01s w

10last或者lastb命令

last/lastb 命令会展示一个最近登录系统的用户列表。

[root@localhost ~]# last
root     pts/1        10.65.30.83      Tue Jul 18 21:34   still logged in
root     pts/0        10.65.30.83      Tue Jul 18 10:56 - 21:34  (10:37)
root     pts/0        10.65.30.83      Mon Jul 17 21:52 - 10:56  (13:03)
root     pts/0        10.65.30.83      Mon Jul 17 14:37 - 16:43  (02:06)
root     pts/0        10.65.30.83      Thu Jul 13 20:52 - 16:48  (19:55)
root     pts/1        10.65.30.83      Thu Jul 13 10:21 - 15:59  (05:38)
root     pts/0        10.65.30.83      Wed Jul 12 08:47 - 15:59 (1+07:11)
reboot   system boot  5.14.0-160.el9.x Wed Jul 12 08:47   still running
root     pts/0        10.65.30.83      Tue Jul 11 20:07 - 08:47  (12:40)
reboot   system boot  5.14.0-160.el9.x Tue Jul 11 20:06 - 08:47  (12:40)
root     pts/0        10.65.30.83      Fri Jun 30 09:08 - 09:08  (00:00)
root     pts/2        10.65.30.83      Thu Jun 29 20:15 - 20:16  (00:00)
root     pts/1        10.65.30.83      Wed Jun 28 15:00 - 22:22 (1+07:21)
root     pts/0        10.65.30.83      Wed Jun 28 14:39 - 22:22 (1+07:42)

要是想显示那些在特定时间访问过系统的用户,可以像下面这样使用 -p 选项:

[root@localhost ~]# last -p now
root     pts/1        10.65.30.83      Tue Jul 18 21:34   still logged in
reboot   system boot  5.14.0-160.el9.x Wed Jul 12 08:47   still running

wtmp begins Wed Nov 16 10:08:39 2022

11lastlog命令

lastlog 命令可以用来查找最近登录那些或者某个特定用户的详细信息,如下所示:

最近登录用户的记录:

wtmp begins Wed Nov 16 10:08:39 2022
[root@localhost ~]# lastlog
Username         Port     From                                       Latest
root             pts/1    10.65.30.83                               Tue Jul 18 21:34:13 +0800 2023
bin                                                                 **Never logged in**
daemon                                                              **Never logged in**
adm                                                                 **Never logged in**
lp                                                                  **Never logged in**
sync                                                                **Never logged in**

[root@localhost ~]# lastlog -u root
Username         Port     From                                       Latest
root             pts/1    10.65.30.83                               Tue Jul 18 21:34:13 +0800 2023

posted @ 2023-07-19 08:48  寻梦99  阅读(273)  评论(0)    收藏  举报