在Linux中查询帐户信息和登录详细信息的10种方法

本教程将向你介绍十种在Linux中查询帐户信息和登录详细信息的方法。 在这里,我们将介绍的这10个方法(或者说是命

令)可用于查询帐户详细信息,显示登录系统的详细信息以及用户在系统上正在进行操作的详细信息。

1. id 命令

id 是一个简单的命令行实用程序,用于显示真实和有效的用户和组的ID,如下命令所示:

root@itkylin:~#id itkylin

uid=1002(itkylin) gid=1002(itkylin) groups=1002(itkylin),1003(testgroups1)

2. groups 命令

groups 命令用于显示用户所属的所有组,如下:

root@itkylin:~#groups itkylin

itkylin : itkylin testgroups1

3. finger 命令

finger 命令用于在Linux系统上搜索有关该用户的信息。 在许多版本的Linux系统默认并没有安装它,我们需要执行如下

命令手动安装它:

$ sudo apt install finger #在Debian/Ubuntu版本Linux下执行此命令安装。
$ sudo yum install finger #在RHEL/CentOS版本Linux下执行此命令安装。
$ sudo dnf install finger #在Fedora 22+版本Linux下执行此命令安装。

查询一个账号的真实名、它的Home目录、默认的shell、登陆名、时间等信息,执行命令如下:

root@itkylin:~# finger itkylin

Login: itkylin Name: ITKylin
Directory: /home/itkylin Shell: /bin/bash
On since Mon Sep 25 17:06 (CST) on pts/1 from 192.168.0.235
26 minutes 15 seconds idle
No mail.
No Plan.

4. getent 命令

getent命令可用于从特定系统数据库中获取相关记录。

比如我们要从passwd类型的系统库中查找itkylin这个账号的相关信息,可执行如下命令:

root@itkylin:~# getent passwd itkylin

itkylin:x:1002:1002:ITKylin,,,:/home/itkylin:/bin/bash

5. grep 命令

grep命令是一种强大的文本搜索工具,它可以使用特定的模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。因

此,我们也可以用它从系统帐户文件中查找有关特定用户的信息。

root@itkylin:~# grep -i itkylin /etc/passwd

itkylin:x:1002:1002:ITKylin,,,:/home/itkylin:/bin/bash

6. users 命令

users命令可以显示当前系统所有已登陆的账号。

root@itkylin:~# users

itkylin root

7. who 命令

who命令可以显示当前系统所有已登陆的账号。包括所登陆的终端、连接时间、IP地址等信息。

root@itkylin:~# who -u

root pts/0 2017-09-25 17:16 . 16099 (192.168.0.235)
itkylin pts/1 2017-09-25 17:06 00:26 15196 (192.168.0.235)

8. w 命令

w命令可以显示当前系统所有已登陆的账号。包括所登陆的终端、连接时间、IP地址等信息,最关键的是,它还能显示该用

户正在执行的是什么命令。

root@itkylin:~# w

20:03:21 up 10 days, 9:40, 2 users, load average: 0.00, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.235 17:16 1.00s 0.06s 0.00s w
itkylin pts/1 192.168.0.235 17:06 27:05 1.03s 0.99s top

9. last 或者 lastb 命令

last/lastb 命令它会读取位于/var/log/wtmp的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。
如果没有/var/log/wtmp文件,执行last命令后会提示如下错误信息:

last: /var/log/wtmp: No such file or directory
Perhaps this file was removed by the operator to prevent logging last info.

你只需执行如下命令新建一个wtmp文件就可以了:

root@itkylin:~# touch /var/log/wtmp

last命令用法如下所示:

root@itkylin:~# last
OR
root@itkylin:~# last -a

20:03:21 up 10 days, 9:40, 2 users, load average: 0.00, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.235 17:16 1.00s 0.06s 0.00s w
itkylin pts/1 192.168.0.235 17:06 27:05 1.03s 0.99s top
root@itkylin:~# last
root pts/0 192.168.0.235 Mon Sep 25 17:16 still logged in
itkylin pts/1 192.168.0.235 Mon Sep 25 17:06 still logged in
root pts/0 192.168.0.235 Mon Sep 25 16:59 – 17:16 (00:16)
root pts/0 192.168.0.235 Sat Sep 16 20:26 – 21:40 (01:13)
andy pts/1 192.168.0.235 Sat Sep 16 13:58 – 20:09 (06:11)
root pts/0 192.168.0.235 Sat Sep 16 13:57 – 19:52 (05:54)
andy pts/0 192.168.0.235 Sat Sep 16 12:01 – 13:57 (01:55)
root pts/0 192.168.0.235 Sat Sep 16 10:41 – 12:01 (01:19)
servicel pts/1 192.168.0.235 Fri Sep 15 10:37 – 14:05 (03:27)
root pts/0 192.168.0.235 Fri Sep 15 10:23 – 17:04 (06:40)
reboot system boot 4.4.0-31-generic Fri Sep 15 10:22 – 20:03 (10+09:41)
root tty1 Fri Sep 15 10:19 – down (00:03)
root pts/0 192.168.0.235 Mon Sep 4 12:33 – 12:33 (00:00)

wtmp begins Sat Sep 2 07:53:09 2017

10. lastlog 命令

lastlog命令用于查找所有用户或指定的用户最近登录的详细信息,如下所示。

root@itkylin:~# lastlog

Username Port From Latest
root pts/0 192.168.0.235 Mon Sep 25 17:16:32 +0800 2017
daemon **Never logged in**
bin **Never logged in**
man **Never logged in**
lp **Never logged in**
sshd **Never logged in**
andy pts/1 192.168.0.235 Sat Sep 16 13:58:39 +0800 2017
snmp **Never logged in**
redis **Never logged in**
mysql **Never logged in**
itkylin pts/1 192.168.0.235 Fri Sep 15 10:37:42 +0800 2017
itkylin pts/1 192.168.0.235 Mon Sep 25 17:06:50 +0800 2017

root@itkylin:~# lastlog -u itkylin #显示指定的账号itkylin最近的登陆记录

Username Port From Latest
itkylin pts/1 192.168.0.235 Mon Sep 25 17:06:50 +0800 2017

就这么多了,如果你知道还有那里相关的命令请给我评论分享给大家,谢谢!