当前位置:   article > 正文

在Linux中列出用户的3种方法_linux list user

linux list user

作为系统管理员,您通常需要列出Linux系统上的所有用户。了解如何在Linux命令行中列出所有用户。如今,不同的操作系统可以使用多个用户,每个用户都有其设置和自定义配置,使管理员和操作员可以更轻松地在同一系统上一起工作。另一方面,Linux在这方面非常强大,因为它允许多个用户以独立的方式同时在系统上工作。它甚至可以允许单个用户甚至从不同位置打开多个会话,以便在系统上工作。

以下是一些在Linux中处理用户的提示和技巧。

列出Linux上的所有用户

假设您要在Linux中创建sudo用户。大概首先要知道的是如何知道我系统中的用户。在Linux中,有几种方法可以获取用户列表。

1.使用更少的/ etc / passwd向Linux中的用户显示

该命令允许sysops列出系统中本地存储的用户。它将以结构化方式列出:

  1. root:x:0:0:root:/root:/bin/bash
  2. daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  3. bin:x:2:2:bin:/bin:/usr/sbin/nologin
  4. sys:x:3:3:sys:/dev:/usr/sbin/nologin
  5. sync:x:4:65534:sync:/bin:/bin/sync
  6. games:x:5:60:games:/usr/games:/usr/sbin/nologin
  7. man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
  8. lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
  9. mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
  10. news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
  11. johndoe:x:1000:1000:John Doe,,,:/home/helder:/bin/bash
  12. davmail:x:127:65534::/var/lib/davmail:/usr/sbin/nologin
  13. statd:x:128:65534::/var/lib/nfs:/usr/sbin/nologin
  14. /etc/passwd (END)

上面输出中的结构如下:

  • 用户名
  • 加密密码(x代表密码已存储)
  • 用户ID号(UID)
  • 用户的组ID号(GID)
  • 全名
  • 用户的主目录
  • 用户的登录shell(默认为bash shell)

为什么会有那么多用户?哪些是“真实的”?

该列表显示的用户比您预期的要多得多,因为它也列出了所有系统用户。

现在,如果您要将普通用户与系统用户区分开,则可以参考用户标识符(UID)号

通常,普通用户的UID大于或等于1000。这提示您UID> = 1000的用户是普通用户,而UID <1000的用户是系统用户。

您还会注意到,某些用户在其行尾有“ nologin”。这意味着这些用户无法登录系统。这些用户也称为伪用户。

2.使用getent passwd查看用户

此命令将为您提供与“ less / etc / passwd”类似的输出,但是,该命令实际上查询GNU名称服务交换机功能配置文件(位于/etc/nsswitch.conf)。

这个conf包含passwd,所以这就是为什么它将显示非常相似的原因,但是如果您使用LDAP进行身份验证,它将也包含该密码。

3.使用compgen列出Linux用户

如果只想列出所有用户名而没有任何其他信息,则可以将compgen 命令-u选项一起使用。

compgen -u

输出如下:

  1. compgen -u
  2. root
  3. daemon
  4. bin
  5. sys
  6. sync
  7. games
  8. man
  9. lp
  10. mail
  11. news
  12. uucp
  13. proxy
  14. www-data
  15. backup
  16. list
  17. irc
  18. gnats
  19. nobody
  20. systemd-network
  21. systemd-resolve
  22. syslog
  23. messagebus
  24. _apt
  25. uuidd
  26. avahi-autoipd
  27. usbmux
  28. dnsmasq
  29. rtkit
  30. cups-pk-helper
  31. speech-dispatcher
  32. whoopsie
  33. kernoops
  34. saned
  35. pulse
  36. avahi
  37. colord
  38. hplip
  39. geoclue
  40. gnome-initial-setup
  41. gdm
  42. abhishek
提示:可以将compgen命令与-c选项一起使用,以列出所有可用的命令。当您不是Linux系统的管理员并且没有 sudo访问权限 时,这将很有帮助。

有关在Linux中列出用户的一些技巧

您刚刚看到了三种在Linux中查看用户的方式。这里有一些技巧,可以帮助您处理用户列表。

仅列出用户名

您已经有了compgen命令,但是不必一直记住它。

如果我们只想获取系统中用户名的列表,则可以使用awk命令cut命令来过滤我们前面看到的其他两个命令的输出。

cut -d: -f1 /etc/passwd

要么

getent passwd | awk -F: '{ print $1}'

这些中的任何一个都会给我们过滤的用户列表,仅显示第一列,即用户名:

  1. root
  2. daemon
  3. bin
  4. sys
  5. sync
  6. games
  7. man
  8. lp
  9. mail
  10. news
  11. johndoe
  12. davmail
  13. statd

检查系统中是否已经存在用户名

如果您想知道系统中是否已经存在特定的用户名,这可能会很有用:

getent passwd | grep johndoe

这是输出:

johndoe:x:1000:1000:John Doe,,,:/home/johndoe:/bin/bash

列出所有连接的用户

如果您想知道当前有哪些用户登录到您的Linux系统,则需要使用一个简单的who命令,这将立即列出当前用户名以及与系统的活动会话

  1. user@system:~$ who
  2. johndoe :0 2019-01-28 21:35 (:0)
  3. harrysmith pts/0 2019-02-01 09:51 (192.168.1.1)
  4. stevejones pts/1 2019-02-02 09:51 (192.168.1.173)

在这种情况下,列表不仅会为您提供已连接用户名的列表,而且还会提供它们的连接方式,因为它们的连接时间以及连接的位置。

第一列将告诉您它是什么用户名。

第二列将为您提供哪种连接类型:如果用“:X”表示,其中X是数字,则表示它正在使用图形用户界面(GUI)或桌面会话,例如Gnome,XDE等。 ; 如果它说“ pts / X”,其中X是数字,则表示它是通过SSH协议(命令行)建立的连接。

第三列会告诉您该会话何时连接到服务器(日期和时间)。第四列也是最后一列将为您提供连接的位置,如果是远程(如GUI),它将显示IP地址(如果是本地),它将显示“(:X)”,其中X是在这种情况下,该会话将与该行的第二列中的数字匹配。

包起来

如您所见,在Linux中列出用户并不困难。它由简单的命令组成,这些命令将为您输出所有信息,无论您要做什么或获取这些信息,都需要根据要在系统上检查的内容进行过滤。

例如,如果要列出Linux中组中的用户,则也可以这样做。在相关主题中,您还可以阅读有关在Linux命令行中更改用户的信息

希望您喜欢本教程。如果您有任何疑问或建议,请在评论中告知我们。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/328347
推荐阅读
相关标签
  

闽ICP备14008679号