Linux查看用户有哪些可靠方法?

查看 /etc/passwd 文件(最直接)

命令

cat /etc/passwd

说明

  • 所有用户信息存储在 /etc/passwd 文件中,每行代表一个用户。
  • 输出格式:
    用户名:密码占位符(x):用户ID(UID):组ID(GID):描述信息:家目录:默认Shell
    john:x:1001:1001:John Doe:/home/john:/bin/bash
  • 关键字段
    • UID:用户ID,系统用户通常为 0-999(如root的UID=0),普通用户从 1000 开始。
    • Shell:若为 /sbin/nologin/bin/false,表示是系统服务账户(非登录用户)。

使用 getent 命令(推荐)

命令

getent passwd

优点

  • 兼容性高,可查询LDAP/NIS等网络用户数据库(如果系统配置了这些服务)。
  • 输出格式与 /etc/passwd 相同。

提取用户名列表

方法1:通过 awkcut

awk -F: '{print $1}' /etc/passwd   # 使用awk提取第一列(用户名)
cut -d: -f1 /etc/passwd            # 使用cut提取用户名

方法2:compgen 命令(仅限Bash)

compgen -u                         # 列出所有用户名(包括系统用户)

区分普通用户与系统用户

列出普通用户(UID ≥ 1000):

getent passwd {1000..60000}        # 直接查询UID范围

awk -F: '$3 >= 1000 && $3 < 60000 {print $1}' /etc/passwd

列出系统用户(UID < 1000):

awk -F: '$3 < 1000 {print $1}' /etc/passwd

查看登录用户

命令

who                                # 显示当前登录的用户及终端
w                                  # 显示更详细信息(包括正在执行的命令)
users                              # 仅显示登录的用户名

注意事项

  1. 权限要求
    • 普通用户可查看 /etc/passwd,但部分系统用户可能被隐藏(如LDAP用户需getent)。
    • 某些工具(如 compgen)依赖Shell环境。
  2. 家目录验证(辅助方法):
    ls /home                        # 查看/home下的用户目录(不完整,系统用户通常无家目录)
  3. 用户有效性
    • 检查用户是否被锁定:passwd -S 用户名(状态显示LK表示锁定)。
    • 查看用户组:groups 用户名id 用户名

总结建议

  • 快速查看所有用户 → 用 getent passwdcat /etc/passwd
  • 提取纯用户名列表 → 用 cut -d: -f1 /etc/passwd
  • 检查登录情况 → 用 wwho
  • 系统用户过滤 → 结合 awk 按UID筛选。

引用说明: 基于Linux标准文档(man 5 passwd)及开源社区最佳实践,参考了Linux内核官方文档和Ubuntu/CentOS系统管理指南,具体命令行为可能因发行版(如Debian、RHEL)略有差异,建议查阅本地手册(man [命令])。

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

(0)
酷番叔酷番叔
上一篇 2025年7月23日 15:39
下一篇 2025年7月23日 15:47

相关推荐

  • Linux系统如何查看当前实时系统负载状态的方法与命令?

    在Linux系统中,系统负载是衡量系统繁忙程度的重要指标,它反映了单位时间内等待运行(包括正在运行)的进程数量,我们使用1分钟、5分钟、15分钟的平均负载值来评估系统状态,这三个值分别对应系统在过去1分钟、5分钟、15分钟的负载情况,理解如何查看和分析系统负载,对于排查系统性能瓶颈、优化资源配置至关重要,本文将……

    2025年10月7日
    14000
  • 你最近一次感到幸福是什么时候?

    在Linux中,管道(Pipe)是一种强大的进程间通信机制,它允许一个进程的输出直接作为另一个进程的输入,理解其底层实现不仅能深化对Linux系统的认知,还能提升系统编程能力,下面将详细解释如何用C语言手动实现管道功能,管道的基本原理管道本质上是内核维护的环形缓冲区,通过两个文件描述符(fd)进行操作:fd[0……

    2025年7月26日
    12400
  • 如何测试linux访问外网

    在Linux系统中测试外网访问能力是运维和开发中的常见需求,可能是为了验证网络配置、排查故障、部署服务或更新软件,本文将从基础到进阶,详细介绍多种测试方法、工具使用及故障排查思路,帮助全面判断Linux系统的外网连通性,基础连通性测试:ping命令ping是最基础的网络连通性测试工具,通过发送ICMP回显请求……

    2025年10月5日
    14500
  • linux如何表示所以文件夹

    Linux中,用/表示根目录,所有文件夹都从根目录开始构建层级

    2025年8月18日
    14500
  • Linux修改profile配置文件后如何使其立即生效?

    在Linux系统中,profile文件是用户环境配置的核心载体,用于定义环境变量、命令别名、默认路径等系统行为,当用户修改profile文件后,配置不会立即生效,需要通过特定方式重新加载文件或重启环境,才能使新配置对当前及后续的shell会话产生影响,本文将详细解析Linux中修改profile文件后的生效原理……

    2025年9月9日
    15800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信