Linux如何正确查看所有用户账户?

方法1:查看/etc/passwd文件(最基础)

命令

cat /etc/passwd

原理与输出解析
Linux将所有用户信息存储在/etc/passwd文件中,每行代表一个用户,格式为:
用户名:密码占位符(x):用户ID(UID):组ID(GID):描述信息:家目录:默认Shell

john:x:1001:1001:John Doe:/home/john:/bin/bash

  • UID说明
    • 0:root用户(超级管理员)
    • 1-999:系统服务账户(如www-data
    • 1000+:普通用户

适用场景

  • 查看所有本地用户(包括系统账户和普通用户)
  • 需分析UID/GID等详细信息时

方法2:使用getent命令(推荐)

命令

getent passwd

原理
getent从系统数据库(包括passwdgroup等)获取条目,兼容本地账户和网络账户(如LDAP/NIS)。
优势

  • 自动识别所有配置的用户源
  • 输出格式与/etc/passwd一致

适用场景

  • 企业环境中集中账户管理(LDAP等)
  • 需要兼容性更强的标准化操作

方法3:列出登录用户

命令

who      # 显示当前登录用户及终端信息
w        # 显示登录用户及正在运行的进程
users    # 仅显示已登录用户名(去重后)

原理
这些命令读取/var/run/utmp文件(记录当前会话)。
输出示例

$ who
root     tty1         2025-10-01 09:30
alice    pts/0        2025-10-01 10:15 (192.168.1.5)

适用场景

  • 实时监控系统活跃用户
  • 排查异常登录行为

方法4:过滤有效用户账户

命令

getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}'

原理
通过awk筛选UID范围(通常1000-65534为普通用户),排除系统账户。
关键参数

  • -F::以冒号分隔字段
  • $3 >= 1000:过滤UID≥1000的用户

适用场景

  • 快速获取可登录的普通用户列表
  • 忽略系统服务账户(如mysqlnginx

方法5:检查用户家目录

命令

ls /home   # 查看/home下的用户目录

注意

  • 仅适用于默认家目录配置
  • 可能遗漏自定义路径的用户(如/var/www

总结与建议

场景 推荐方法
查看所有本地账户详情 cat /etc/passwd
兼容本地+网络账户 getent passwd
监控实时登录用户 whow
仅提取普通用户名 getent passwd + awk过滤

安全提示

  • 定期审计用户列表(尤其UID=0的非root账户)
  • 禁用无用账户:sudo usermod -L 用户名
  • 验证用户来源:grep "用户名" /etc/passwd /etc/shadow

引用说明基于Linux Foundation官方文档、man passwd手册页及Red Hat系统管理指南,关键文件格式遵循POSIX标准,命令兼容主流发行版(Ubuntu/CentOS等)。

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

(0)
酷番叔酷番叔
上一篇 2025年7月17日 19:34
下一篇 2025年7月17日 19:48

相关推荐

  • 如何查看Linux系统的网卡型号信息?

    在Linux系统中,查看网卡型号是网络配置、故障排查或硬件升级时的常见需求,由于Linux发行版众多,且网卡硬件类型多样(如Intel、Realtek、Broadcom等),掌握多种查看方法能更高效地获取信息,本文将详细介绍通过命令行和图形界面查看Linux网卡型号的多种方式,并分析不同方法的适用场景和优缺点……

    2025年10月3日
    9000
  • Linux如何扩展使用大内存?

    在Linux系统中有效扩展和利用大内存(通常指64GB以上)需要从内存管理机制、内核参数调优、架构适配等多维度进行优化,以充分发挥硬件性能,避免资源浪费,以下是具体方法及实践步骤,优化内存页管理:启用Huge PagesLinux默认使用4KB的小内存页,大内存场景下页表项数量激增,不仅占用大量内存(每GB内存……

    2025年9月29日
    8700
  • Linux挂载光驱遇难题?

    挂载光驱步骤确认光驱设备标识lsblk # 列出所有块设备输出示例:sr0 11:0 1 1024M 0 rom # 通常标识为 /dev/sr0 或 /dev/cdrom创建挂载点目录sudo mkdir /mnt/cdrom # 推荐使用 /mnt/cdrom 作为标准路径挂载光驱sudo mount -t……

    2025年7月15日
    12000
  • Linux下如何升级JDK版本?

    在Linux系统中升级JDK版本是开发运维中的常见需求,通常出于性能优化、安全补丁或新特性支持等目的,以下是详细的升级步骤,涵盖主流发行版(如Ubuntu/Debian和CentOS/RHEL)的两种安装方式(包管理器安装与手动安装),以及环境变量配置、旧版本卸载等关键环节,升级前准备:备份旧JDK配置升级前建……

    2025年9月20日
    11000
  • Linux系统中如何刷新环境变量?

    在Linux系统中,环境变量是操作系统用来存储有关运行环境信息的变量,如PATH(可执行文件搜索路径)、HOME(用户主目录)、JAVA_HOME(Java安装路径)等,当用户修改了环境变量相关的配置文件后,需要“刷新环境”使修改生效,否则新开的终端或运行的程序仍会使用旧的环境变量配置,刷新环境的核心是让当前S……

    2025年10月1日
    9200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信