列出 Linux 系统上所有用户的 3 种方法 | Linux 中国

2018 年 8 月 2 日 Linux中国
通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息
-- Magesh Maruthamuthu



致谢
编译自 | 
https://www.2daygeek.com/3-methods-to-list-all-the-users-in-linux-system/
 
 作者 | Magesh Maruthamuthu
 译者 | SunWave 共计翻译:4 篇 贡献时间:367 天

通过使用 /etc/passwd 文件,getent 命令,compgen 命令这三种方法查看系统中用户的信息。

大家都知道,Linux 系统中用户信息存放在 /etc/passwd 文件中。

这是一个包含每个用户基本信息的文本文件。当我们在系统中创建一个用户,新用户的详细信息就会被添加到这个文件中。

/etc/passwd 文件将每个用户的基本信息记录为文件中的一行,一行中包含 7 个字段。

/etc/passwd 文件的一行代表一个单独的用户。该文件将用户的信息分为 3 个部分。

   
   
     
  1. * 1 部分:`root` 用户信息

  2. * 2 部分:系统定义的账号信息

  3. * 3 部分:真实用户的账户信息

第一部分是 root 账户,这代表管理员账户,对系统的每个方面都有完全的权力。

第二部分是系统定义的群组和账户,这些群组和账号是正确安装和更新系统软件所必需的。

第三部分在最后,代表一个使用系统的真实用户。

在创建新用户时,将修改以下 4 个文件。

   
   
     
  1. * `/etc/passwd` 用户账户的详细信息在此文件中更新。

  2. * `/etc/shadow` 用户账户密码在此文件中更新。

  3. * `/etc/group` 新用户群组的详细信息在此文件中更新。

  4. * `/etc/gshadow` 新用户群组密码在此文件中更新。

** 建议阅读 : **

◈  如何在 Linux 上查看创建用户的日期  [1]
◈  如何在 Linux 上查看 A 用户所属的群组  [2]
◈  如何强制用户在下一次登录 Linux 系统时修改密码  [3]

方法 1 :使用 /etc/passwd 文件

使用任何一个像 catmoreless 等文件操作命令来打印 Linux 系统上创建的用户列表。

/etc/passwd 是一个文本文件,其中包含了登录 Linux 系统所必需的每个用户的信息。它保存用户的有用信息,如用户名、密码、用户 ID、群组 ID、用户 ID 信息、用户的家目录和 Shell 。

/etc/passwd 文件将每个用户的详细信息写为一行,其中包含七个字段,每个字段之间用冒号 : 分隔:

   
   
     
  1. # cat /etc/passwd

  2. root:x:0:0:root:/root:/bin/bash

  3. bin:x:1:1:bin:/bin:/sbin/nologin

  4. daemon:x:2:2:daemon:/sbin:/sbin/nologin

  5. adm:x:3:4:adm:/var/adm:/sbin/nologin

  6. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

  7. sync:x:5:0:sync:/sbin:/bin/sync

  8. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

  9. halt:x:7:0:halt:/sbin:/sbin/halt

  10. mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

  11. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

  12. postfix:x:89:89::/var/spool/postfix:/sbin/nologin

  13. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

  14. tcpdump:x:72:72::/:/sbin/nologin

  15. 2gadmin:x:500:10::/home/viadmin:/bin/bash

  16. apache:x:48:48:Apache:/var/www:/sbin/nologin

  17. zabbix:x:498:499:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

  18. mysql:x:497:502::/home/mysql:/bin/bash

  19. zend:x:502:503::/u01/zend/zend/gui/lighttpd:/sbin/nologin

  20. rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

  21. 2daygeek:x:503:504::/home/2daygeek:/bin/bash

  22. named:x:25:25:Named:/var/named:/sbin/nologin

  23. mageshm:x:506:507:2g Admin - Magesh M:/home/mageshm:/bin/bash

7 个字段的详细信息如下。

◈  用户名 ( magesh): 已创建用户的用户名,字符长度 1 个到 12 个字符。
◈  密码x):代表加密密码保存在 `/etc/shadow 文件中。
◈ **用户 ID( 506):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为  root 用户保留的,UID 号 1 到 99 是为系统用户保留的,UID 号 100-999 是为系统账户和群组保留的。
◈ **群组 ID ( 507):代表群组的 ID 号,每个群组都要有一个唯一的 GID ,保存在  /etc/group 文件中。
◈ **用户信息( 2g Admin - Magesh M):代表描述字段,可以用来描述用户的信息(LCTT 译注:此处原文疑有误)。
◈ **家目录( /home/mageshm):代表用户的家目录。
◈ **Shell( /bin/bash):代表用户使用的 shell 类型。

你可以使用 awk 或 cut 命令仅打印出 Linux 系统中所有用户的用户名列表。显示的结果是相同的。

   
   
     
  1. # awk -F':' '{ print $1}' /etc/passwd

  2. or

  3. # cut -d: -f1 /etc/passwd

  4. root

  5. bin

  6. daemon

  7. adm

  8. lp

  9. sync

  10. shutdown

  11. halt

  12. mail

  13. ftp

  14. postfix

  15. sshd

  16. tcpdump

  17. 2gadmin

  18. apache

  19. zabbix

  20. mysql

  21. zend

  22. rpc

  23. 2daygeek

  24. named

  25. mageshm

方法 2 :使用 getent 命令

getent 命令显示 Name Service Switch 库支持的数据库中的条目。这些库的配置文件为 /etc/nsswitch.conf

getent 命令显示类似于 /etc/passwd 文件的用户详细信息,它将每个用户详细信息显示为包含七个字段的单行。

   
   
     
  1. # getent passwd

  2. root:x:0:0:root:/root:/bin/bash

  3. bin:x:1:1:bin:/bin:/sbin/nologin

  4. daemon:x:2:2:daemon:/sbin:/sbin/nologin

  5. adm:x:3:4:adm:/var/adm:/sbin/nologin

  6. lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

  7. sync:x:5:0:sync:/sbin:/bin/sync

  8. shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

  9. halt:x:7:0:halt:/sbin:/sbin/halt

  10. mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

  11. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

  12. postfix:x:89:89::/var/spool/postfix:/sbin/nologin

  13. sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

  14. tcpdump:x:72:72::/:/sbin/nologin

  15. 2gadmin:x:500:10::/home/viadmin:/bin/bash

  16. apache:x:48:48:Apache:/var/www:/sbin/nologin

  17. zabbix:x:498:499:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

  18. mysql:x:497:502::/home/mysql:/bin/bash

  19. zend:x:502:503::/u01/zend/zend/gui/lighttpd:/sbin/nologin

  20. rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

  21. 2daygeek:x:503:504::/home/2daygeek:/bin/bash

  22. named:x:25:25:Named:/var/named:/sbin/nologin

  23. mageshm:x:506:507:2g Admin - Magesh M:/home/mageshm:/bin/bash

7 个字段的详细信息如上所述。(LCTT 译注:此处内容重复,删节)

你同样可以使用 awk 或 cut 命令仅打印出 Linux 系统中所有用户的用户名列表。显示的结果是相同的。

方法 3 :使用 compgen 命令

compgen 是 bash 的内置命令,它将显示所有可用的命令,别名和函数。

   
   
     
  1. # compgen -u

  2. root

  3. bin

  4. daemon

  5. adm

  6. lp

  7. sync

  8. shutdown

  9. halt

  10. mail

  11. ftp

  12. postfix

  13. sshd

  14. tcpdump

  15. 2gadmin

  16. apache

  17. zabbix

  18. mysql

  19. zend

  20. rpc

  21. 2daygeek

  22. named

  23. mageshm


via: https://www.2daygeek.com/3-methods-to-list-all-the-users-in-linux-system/

作者:Magesh Maruthamuthu[5] 选题:lujun9972 译者:SunWave 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

Linux 是一系列类 Unix 计算机操作系统的统称。该操作系统的核心为 Linux 内核。Linux 操作系统也是软件和开放源代码发展中最著名的例子之一。
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
85+阅读 · 2020年6月28日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
5+阅读 · 2017年11月13日
Arxiv
4+阅读 · 2016年12月29日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关VIP内容
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
超级!超级!超级好用的视频标注工具
极市平台
8+阅读 · 2018年12月27日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
相关论文
Top
微信扫码咨询专知VIP会员