Linux查看用户列表方法

在Linux中查询所有用户,可通过以下方法:,1. 查看 /etc/passwd 文件:cat /etc/passwdcut -d: -f1 /etc/passwd,2. 使用 getent 命令:getent passwd,3. 列出登录用户:userswho,这些命令显示系统账户和普通用户,需注意部分为服务账户。

在Linux系统中,查询所有用户是系统管理的基础操作,常用于账户管理、权限审计或安全排查,以下是几种高效可靠的方法,均基于Linux官方文档和行业标准实践(参考man passwdman getent):

Linux查看用户列表方法


核心方法详解

直接解析用户数据库文件

Linux本地用户信息存储在 /etc/passwd 文件中,每行代表一个用户,格式为:
用户名:密码占位符(x):UID:GID:描述信息:主目录:登录Shell
操作命令:

cat /etc/passwd  # 查看完整信息
cut -d: -f1 /etc/passwd  # 仅提取用户名列表

输出示例:

root
daemon
bin
...
your_username

使用 getent 命令(推荐)

此命令兼容本地账户及网络账户服务(如LDAP/NIS),确保查询完整性:

getent passwd  # 查询所有用户完整信息
getent passwd | cut -d: -f1  # 仅输出用户名

优势: 自动识别系统配置的用户源,避免遗漏网络账户。

利用 awk 过滤输出

提取用户名并排序(适合脚本处理):

Linux查看用户列表方法

awk -F: '{print $1}' /etc/passwd | sort

参数说明:

  • -F: 指定冒号为字段分隔符
  • {print $1} 输出第一字段(用户名)

快速查询登录用户(非系统账户)

区分可登录用户与系统服务账户:

grep -v "/nologin|/false" /etc/passwd | cut -d: -f1

原理: 排除Shell为/sbin/nologin/usr/sbin/false的系统账户。


关键注意事项

  1. 权限要求
    普通用户可执行查询,但 /etc/passwd 默认全局可读(权限-rw-r--r--)。

  2. UID范围识别

    Linux查看用户列表方法

    • 系统账户: UID范围 0~999(CentOS/RHEL)或 0~499(Debian/Ubuntu)
    • 普通用户: UID ≥1000
      查看命令:

      awk -F: '$3 >= 1000 {print $1}' /etc/passwd  # 仅显示普通用户
  3. 伪用户与无效账户
    部分服务账户无主目录(如_aptsystemd-network),需结合业务判断是否需保留。


应用场景建议

  • 基础查询 → 使用 getent passwd | cut -d: -f1
  • 脚本处理 → 用 awk 按条件过滤
  • 用户有效性检查 → 结合 grep 排除非登录账户
  • 审计合规 → 导出到文件: getent passwd > all_users.txt

附:用户信息字段说明

nginx:x:101:101:nginx user:/nonexistent:/usr/sbin/nologin 为例:

  1. nginx – 用户名
  2. x – 密码占位符(实际密码在/etc/shadow
  3. 101 – 用户ID (UID)
  4. 101 – 组ID (GID)
  5. nginx user – 描述信息
  6. /nonexistent – 主目录路径
  7. /usr/sbin/nologin – 登录Shell(禁止登录)

引用说明: 本文内容基于Linux核心文档(man 5 passwd)、Filesystem Hierarchy Standard及SysAdmin最佳实践,命令兼容主流发行版(Ubuntu/CentOS/Debian等)。

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月26日 12:50
下一篇 2025年6月26日 12:57

相关推荐

  • Linux怎么执行SQL

    在Linux中执行SQL语句主要通过命令行工具实现: ,1. **MySQL/MariaDB**:使用mysql -u 用户名 -p -e “SQL语句” ,2. **PostgreSQL**:通过psql -U 用户名 -c “SQL语句” ,3. **SQLite**:直接运行sqlite3 数据库文件 “SQL语句” ,也可将SQL写入文件,用˂ 文件重定向执行,或进入交互命令行操作。

    2025年6月14日
    000
  • 如何检查Linux端口是否开放

    使用 netstat -tuln 或 ss -tuln 查看本地监听端口,检查远程端口可用 nmap -p 端口号 IP地址 或 telnet IP地址 端口号,成功连接或显示 LISTEN 状态表示端口开放。

    2025年6月12日
    100
  • 怎么用wubi装linux?

    wubi是Windows下的Ubuntu安装工具,在Windows中运行wubi安装程序,选择安装位置和设置后,它会将Ubuntu安装在硬盘文件内,无需单独分区,重启后选择Ubuntu即可进入系统,卸载可通过Windows添加删除程序完成,适用于Ubuntu 8.04至12.04版本。

    2025年6月10日
    000
  • Linux剩余空间怎样查看

    使用 df -h 命令查看磁盘剩余空间,结果以易读单位(GB、MB)显示,重点关注 **Avail** 或 **Available** 列数据即可。

    2025年6月11日
    000
  • Linux怎么打开shell?

    在Linux中打开终端即可访问Shell,常用方法:桌面环境通过菜单启动终端程序(如GNOME Terminal),或使用快捷键Ctrl+Alt+T,无图形界面时系统默认进入Shell命令行。

    2025年6月13日
    000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN