如何查看所有普通用户名

在Linux系统中,查看用户数量是系统管理的基础操作,以下是几种可靠的方法,适用于大多数Linux发行版(如Ubuntu、CentOS、Debian等),并区分了所有用户和可登录的普通用户的统计方式:


统计所有用户数量(含系统用户)

系统用户(UID<1000)用于运行服务,普通用户(UID≥1000)用于日常登录。
命令及说明:

cat /etc/passwd | wc -l
  • 原理:/etc/passwd 存储所有用户信息,每行代表一个用户。
  • 结果:输出数字即总用户数(包含系统用户)。
  • 示例:
    $ cat /etc/passwd | wc -l
    45  # 表示系统共有45个用户(含系统用户)

仅统计普通用户数量(可登录用户)

普通用户的UID(用户ID)通常从1000开始(基于主流发行版默认设置):
推荐命令:

getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}' | wc -l
  • 参数解析:
    • getent passwd:兼容本地用户及网络账户(如LDAP)。
    • awk -F::以冒号分隔字段。
    • $3 >= 1000 && $3 < 65534:过滤UID范围(1000~65533),排除系统用户和特殊用户。
  • 示例输出:
    $ getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}' | wc -l
    3  # 表示有3个普通用户

注意:

  • 部分旧系统(如RHEL 6)普通用户UID从500开始,需将命令中的 1000 改为 500。
  • 使用 $3 < 65534 是为了排除 nobody 等特殊用户(其UID通常为65534)。

扩展:查看用户列表(非数量)

若需查看具体用户名而非数量,移除 wc -l 即可:

# 示例输出:
user1
user2
user3

注意事项

  1. 权限要求:
    所有命令无需root权限,但 /etc/passwd 对所有用户可读。
  2. 环境差异:
    • UID起始值可能因系统而异,可通过查看 /etc/login.defs 中的 UID_MIN 确认:
      grep '^UID_MIN' /etc/login.defs
    • 网络用户(如LDAP)需确保 getent 命令正常解析。
  3. 容器/云环境:
    容器内用户可能较少,统计逻辑相同。

场景 命令
统计所有用户(含系统用户) cat /etc/passwd | wc -l
仅统计普通用户 getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}' | wc -l
查看普通用户列表 getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}'

引用说明:本文方法参考 Linux 标准基础规范(LSB)、man passwd 手册页及主流发行版官方文档(如Ubuntu、Red Hat),确保通用性和准确性。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9767.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月6日 18:00
下一篇 2025年8月6日 18:09

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信