当前位置:首页 > 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程序 |

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

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

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

getent passwd

优势

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

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

查看当前登录用户

who 命令(最常用)

who

输出示例
ubuntu pts/0 2025-07-20 09:30 (192.168.1.5)
字段含义

  • 用户名:登录账户名
  • 终端类型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)

关键信息

  • 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官方文档(man7.org)及Unix/Linux系统管理权威指南《Linux Administration Handbook》,所有命令已在Ubuntu 22.04 LTS和CentOS 7环境中验证,确保可靠性,对于涉及用户隐私的操作(如查看shadow文件),请遵守相关法律法规。

0