使用lslogins调查Linux用户登录

lslogins命令可以帮助您查看用户帐户和登录活动的详细信息

覆盖在数据和网络连接的抽象背景上的密码登录屏幕。
vladimir kazakov / getty图像

在Linux系统上列出有关用户登录的详细信息的一个方便方式是使用lslogins命令。您将获得一个非常有用和很好的格式化显示,包括相当一些重要的细节。

在我的系统和可能大多数其他人的系统上,用户帐户将从UID 1000开始。要列出这些帐户,而不是包括守护程序,邮件和syslog等所有服务帐户,添加-U选项,如下面的示例所示。

$ sudo lslogins -u UID USER PROC PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0根151 0 0根
1000 shs 68 00 12:35 Sandra H-S 1001 nemo 000 2021-Jan05 nemo Demo…1002 dbell 0 0 1海鲂贝尔1003鲨鱼2 0 0 7:15沙龙听1004蝌蚪0 0 0 2020 - dec05 Ted杆1005鳗鱼0 0 0 2021 - jan11艾伦McDay 1006 bugfarm 0 0 0 2021 - jan01 Bug农场1008多萝西0 0 1012多萝西鲁本jadep 0 0 1 2021 -琼斯jan04玉1013 0 0 0 2021 - jan12我自1014年marym 0 0 0 2020 - mar20玛丽McShea 1017 gijoe 0 0 0 GI Joe65534 nobody 0 0 1 nobody

什么lslogins命令确实是从系统文件中获取相关信息,例如/ etc / passwd/etc/shadow/var/log/wtmp然后按如下所示的格式进行布局。如果不使用sudo,您将无法检索所示的所有信息。非特权帐户无法访问所需的所有文件。

显示屏显示数字UID,用户名和运行的进程数。此输出表明,列出的第一个用户可能在系统控制台上登录,因为她有68个运行进程。我们没有看到的是她还在伪终端上登录;如果我们使用了这个用户,我们会看到两个参赛作品WHO命令

接下来的两列(PWD-LOCK和PWD-DENY)显示四个帐户被锁定。在/etc/shadow文件中,每一个都有一个以“!”开头的密码散列字段。此外,我们只看到5个“最近”登录。(我把“最近”加了引号,因为2020年3月20日对我来说并不那么近。)这不仅表明这个用户可能不再需要她的帐户,而且这个系统通常不会被大量使用,因为/var/log/wtmp该文件于2020年3月或更早的时候展期。因为其中两个LAST-LOGIN日期只显示时间而不是日期,所以我们知道它们都显示了今天的登录。

仅显示一个用户的详细信息

如果只想显示某个特定用户的详细信息,可以将用户名作为参数添加到命令中。你将看到一个完全不同的显示格式和一些额外的细节:

$ sudo lslogins啦用户名:合成UID: 1000 Gecos字段:桑德拉H-S主目录:/home/shs壳:/bin/bash没有登录:密码锁定:没有密码要求:没有登录的密码禁用:没有密码的加密方法:sha - 512主组:合成GID: 1000年补充组:secteam, sudo补充组id: 11日,27日最后登录:14:44 Last terminal: pts/1 Last hostname: 192.168.0.13 Hushed: no Password expiration warning interval: 7 Password changed: 2020-Sep30 Maximum change time: 99999正在运行的进程:67

寻找失败的登录

要检测失败的登录,请使用-F选项(取出选项佛罗里达大学)如本例所示:

$ sudo lslogins -uf UID USER FAILED-LOGIN FAILED-TTY 0 root 1000 shs 1001 nemo 1002 dbell 12:49 ssh:notty 1003 shark 1004 tadpole 1005 eel 1006 bugfarm 1008 dorothy 1012 jadep 1013 myself 1017 gijoe

如果您希望使用失败登录的用户名列表,则可以执行以下操作:

$ sudo lslogins -f | awk '{if ($4) print $2;}'用户铃声

查看密码最后更改或将到期时

使用-一种选项显示密码更改和过期详细信息。

$ sudo lslogins -ua
Uid用户pwd-warn pwd-min pwd-max pwd-change pwd-expir
0根7 99999 2020-sep21
1000 SHS 7 99999 2020-SEP30
1001 nemo 7 90 2020-Dec04
1002 DBELL 14 90 2020-OCT27
1003鲨鱼7 10 90 2020-Mar15
1004蝌蚪7 99999 2019-10-14 2020年11月10日
1005鳗鱼7 99999 2020-Jan18
1006 Bugfarm 7 99999 2020-Jul08
1008 dorothy 7 99999 2019-Jul08
1012 JADEP 7 99999 2019-JUL15
1013我自己7 99999 2020- 1月18日
1017 gijoe 7 99999 2020- 11月11日

使用:作为字段分隔符

使用-C选择你的选择lslogins执行细节。如果你打算进一步处理这些信息,这将是有帮助的。

$ sudo lslogins - c | awk - f”:“> = 1000{打印}1美元的UID:用户:PROC: PWD-LOCK: PWD-DENY:最后登录:1000年GECOS:啦! 68:0:0:14:44:桑德拉\ x20H-S 1001:尼莫:0:0:0:2020-Dec05:尼莫\ x20Demo…1002:dbell: 0:0:1::海鲂\ x20Bell 1003:鲨鱼:0:0:0:鲨鱼…1004:蝌蚪:0:0:0:泰德\ x20Pole…1005:鳗鱼:0:0:0::艾伦,El,,1006:bugfarm:0:0:0::Bug\x20Farm 1008:dorothy:0:0:1:: dorothy \x20Lee 1012:jadep:0:0:1::Jade\x20Jones 1013:myself:0:0:0::My\x20Self 1017:gijoe:0:0:0::GI\x20Joe 65534:nobody:0:0:1::nobody

列出运行超过10个进程的帐户

要获取有多少用户正在运行10个或更多进程的快速列表,可以使用哎呀下面显示的命令检查第3个字段lslogins输出。幸运的是,对于我来说,字符串“proc”也是字母不同的“10”,所以我不必额外努力保留正常列标题。

$ sudo lslogins |awk'$ 3> = 10 {print}'uid用户proc pwd-lock pwd-deny-deny-dany-loval gecos 0根root 152 0 0 root 1000 shs 68 0 0 0 1 14:44 sandra h-s

包起来

lslogins命令为调查用户帐户提供了相当一些有用的选项,但需要使用sudo或以root身份登录以查看所有详细信息。查看手册页以了解更多有关此命令的信息。

加入网络世界社区有个足球雷竞技appFacebookLinkedIn评论是最重要的主题。
相关:

版权©2021Raybet2

IT薪水调查2021:结果已经出来了