当前位置:首页 > Linux > 正文

Linux如何快速查看用户

要查看Linux系统中的用户,可以使用以下命令:,1. cat /etc/passwd:显示所有用户信息,2. getent passwd:获取用户数据库条目,3. compgen -u(仅bash):列出所有用户名,4. lslogins -u:显示已登录用户详情

在Linux系统中,用户管理是系统管理员的核心任务之一,无论是排查安全问题、分配资源还是维护系统,查看用户信息都是关键步骤,本文详细介绍多种查看用户的方法,涵盖所有用户列表当前登录用户用户详细信息等场景,并提供实用技巧。


查看所有用户列表

解析 /etc/passwd 文件(最基础方法)

cat /etc/passwd

输出示例:

root:x:0:0:root:/root:/bin/bash

字段解析(以冒号分隔)

| 字段序号 | 含义 | 说明 |

|———-|—————|————————–|

| 1 | 用户名 | 用户登录名称 |

| 2 | 密码占位符 | x 表示密码存储在 /etc/shadow |

| 3 | 用户ID(UID) | 0 表示root用户 |

| 4 | 组ID(GID) | 主用户组ID |

| 5 | 描述信息 | 用户全名或注释 |

| 6 | 家目录路径 | 用户个人文件夹位置 |

| 7 | 默认Shell | 登录时使用的Shell程序 |

过滤有效用户(排除系统服务账号):

Linux如何快速查看用户 第1张

使用 getent 命令(兼容LDAP/NIS)

getent passwd

优势

  • 自动整合本地用户和网络账户服务(如LDAP)
  • 输出格式与 /etc/passwd 一致


查看当前登录用户

who 命令(最常用)

who

输出示例

ubuntu pts/0 2025-07-20 09:30 (192.168.1.5)

字段含义

Linux如何快速查看用户 第2张

  • 用户名:登录账户名
  • 终端类型:tty(物理终端)/ pts(虚拟终端)
  • 登录时间:精确到秒
  • 来源IP:远程登录时显示客户端IP


w 命令(带活动进程)

w

输出示例

10:15:03 up 5 days, 2:30, 2 users, load average: 0.08, 0.03, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ubuntu pts/0 192.168.1.5 09:30 5.00s 0.02s 0.00s sshd: ubuntu [priv]

关键列

  • WHAT:用户当前运行的命令
  • IDLE:用户空闲时间
  • FROM:登录来源IP


其他实时监控命令

命令 功能 示例输出
users 显示已登录用户名 ubuntu root
last 查看历史登录记录 ubuntu pts/0 192.168.1.5 Fri Jul 20 09:30 still logged in
finger 显示用户详细信息(需安装) Login: ubuntu Name: Ubuntu User


查看单个用户详细信息

id 命令(核心工具)

id username # 替换username为目标用户

输出示例

uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo)

Linux如何快速查看用户 第3张

关键信息

  • uid:用户ID
  • gid:主组ID
  • groups:用户所属的所有组


查看用户所属组

groups username # 或使用 id -Gn username

示例

ubuntu : ubuntu adm sudo docker


高级技巧与注意事项

▸ 场景1:检查用户是否存在

grep -E "^username:" /etc/passwd # 返回结果即存在

▸ 场景2:查看用户密码策略

sudo chage -l username

输出密码过期信息

Last password change : Jun 15, 2025 Password expires : Sep 13, 2025 Password inactive : never Account expires : never

▸ 场景3:审计用户权限

sudo -l -U username # 查看该用户可执行的sudo命令

️ 注意事项:

  1. 权限要求
    • 查看 /etc/passwd 无需root权限
    • 查看 /etc/shadow(密码哈希)需sudo权限
  2. 系统用户 vs 普通用户
    • UID范围 0-999 通常为系统服务账号(如www-data)
    • 普通用户UID从 1000 开始
  3. 环境差异
    • Ubuntu/CentOS等主流发行版命令通用
    • 旧版系统(如Solaris)需使用 logins 命令


方法总结速查表

需求场景 推荐命令 特点
列出所有用户 getent passwd 兼容网络账户,信息完整
查看实时登录用户 w 显示活动进程和资源占用
检查用户属性 id username 快速获取UID/GID/组信息
历史登录记录 last 审计安全事件,含登录IP和时间
用户权限审计 sudo -l -U user 查看sudo授权命令


引用说明: 参考Linux官方文档(Linux系统管理权威指南《Linux Administration Handbook》,所有命令已在Ubuntu 22.04 LTS和CentOS 7环境中验证,确保可靠性,对于涉及用户隐私的操作(如查看shadow文件),请遵守相关法律法规。

0