Linux怎么查系统用户列表

在Linux中查看所有用户,可通过以下命令:,1. 查看 /etc/passwd 文件:cat /etc/passwd(包含系统用户),2. 使用 getent passwd 命令获取用户数据库信息,3. 提取用户名:cut -d: -f1 /etc/passwdgetent passwd | cut -d: -f1,系统用户和普通用户均会列出。

通过系统配置文件查看(最基础方法)

命令:

Linux怎么查系统用户列表

cat /etc/passwd

输出示例:

root:x:0:0:root:/root:/bin/bash
ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash
mysql:x:113:118:MySQL Server,,,:/nonexistent:/bin/false

字段解析(共7列)

  1. 用户名(如 ubuntu
  2. 密码占位符x 表示密码存储在 /etc/shadow
  3. 用户ID(UID)
    • 0:root用户
    • 1-999:系统服务账户
    • 1000+:普通用户
  4. 组ID(GID)
  5. 用户描述(如全名或备注)
  6. 家目录路径
  7. 默认Shell/bin/false 表示禁止登录)

适用场景:查看所有账户的完整信息,包括系统账户。


使用专用命令过滤有效用户

列出登录用户

getent passwd

优势:兼容LDAP等外部用户数据库,比直接读 /etc/passwd 更全面。

Linux怎么查系统用户列表

筛选普通用户(UID≥1000)

getent passwd {1000..60000} 2>/dev/null

原理:直接查询UID范围,排除系统账户。

查看当前登录用户

who      # 显示已登录用户及终端信息
w        # 显示更详细的登录用户和操作
users    # 仅显示登录用户名(去重)

高级工具与技巧

使用 awk 提取关键信息

awk -F: '{print $1, $3}' /etc/passwd  # 只输出用户名和UID

输出示例

root 0
ubuntu 1000

检查用户组关系

groups [用户名]  # 查看指定用户所属组  
id [用户名]     # 显示用户UID、GID及附属组

查看特权用户

grep ':0:' /etc/passwd  # 查找UID=0的用户(除root外可能有隐藏管理员)

方法对比与选择建议

方法 适用场景 优势
cat /etc/passwd 查看所有用户原始数据 信息最全面
getent passwd 企业级环境(含LDAP) 兼容外部认证系统
who / w 监控实时登录用户 实时性强
awk过滤 提取特定字段(如用户名、UID) 可定制输出

安全注意事项

  1. 敏感文件权限
    • /etc/passwd 应全局可读(权限 -rw-r--r--
    • /etc/shadow 仅root可读(权限 -rw-------),存储加密密码。
  2. 审计建议
    • 定期检查UID=0的非root账户
    • 确认无效账户(如 nologin Shell)是否应存在
  3. 避免误操作
    • 修改用户数据前备份配置文件
    • 使用 vipw 命令安全编辑用户文件

权威引用说明

本文方法基于:

  1. Linux man-pages项目man 5 passwd
  2. Ubuntu官方文档:用户管理指南
  3. Red Hat Enterprise Linux安全手册(最小权限原则)
  4. IEEE标准:POSIX.1-2017getent 命令规范)

ℹ️ 所有命令均在 bash 环境下测试通过,兼容主流发行版(Ubuntu 22.04/CentOS 7+)。

Linux怎么查系统用户列表

通过以上方法,您可全面掌握Linux用户查看技术,为系统管理或安全审计提供可靠依据,实际应用中,建议优先使用 getent passwdid 命令以保证兼容性。

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月21日 19:53
下一篇 2025年6月21日 20:02

相关推荐

  • Linux安装Oracle 11g详细步骤教程?

    下载Oracle 11g安装包及依赖包,解压后运行runInstaller启动图形化安装程序,按向导配置安装类型、路径、字符集等,执行root脚本,最后配置环境变量(如ORACLE_HOME)即可完成安装。

    2025年6月9日
    000
  • 如何修改Linux SSH端口?

    编辑SSH配置文件/etc/ssh/sshd_config,修改Port后的端口号(如2222),保存后重启sshd服务(systemctl restart sshd),需提前在防火墙开放新端口(firewall-cmd –add-port=端口号/tcp –permanent)并确保SELinux策略允许(semanage port -a -t ssh_port_t -p tcp 端口号),最后通过新端口测试连接。

    2025年6月7日
    000
  • Linux千兆网卡如何强制百兆?

    在Linux系统中,可以使用ethtool命令将千兆网卡强制设置为百兆模式,执行命令sudo ethtool -s speed 100 duplex full(或half)即可实现网卡速率降速。

    2025年6月6日
    100
  • Linux如何快速登录FTP?

    在Linux中,可通过命令行快速登录FTP:使用ftp命令连接服务器(如ftp ftp.example.com),输入用户名密码;或使用sftp(安全传输)或lftp(功能更强)工具,支持直接带用户名登录:ftp user@host,或设置别名简化操作。

    2025年6月18日
    100
  • Linux分区格式怎么查?

    使用lsblk -f、blkid或df -Th命令查看Linux分区格式,lsblk -f显示所有块设备文件系统类型,blkid列出设备属性,df -Th展示已挂载分区的文件系统格式。

    2025年6月12日
    000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN