在服务器管理中,查看用户信息是确保系统安全、排查问题、管理权限的基础操作,不同操作系统(如Linux、Windows Server)和服务器环境(如物理机、虚拟机、云服务器)查看用户的方法有所不同,本文将结合主流场景,从命令行、图形界面、配置文件等多个维度详细说明如何查看服务器用户信息,并附上实际操作示例和注意事项。

Linux服务器查看用户的方法
Linux系统是多用户多任务系统,用户信息通常存储在特定文件中,同时可通过命令行工具快速查询。
查看用户列表及相关基本信息
(1)/etc/passwd
文件
这是Linux系统存储用户核心信息的文件,每行代表一个用户,格式为:用户名:密码占位符:UID:GID:用户描述:家目录:登录Shell
。
- 字段说明:
用户名
:系统登录标识;UID
:用户唯一ID,0为root用户;GID
:主组ID;用户描述
:可填写用户全名或备注;家目录
:用户默认登录后的主目录;登录Shell
:用户默认使用的命令行解释器(如/bin/bash
为可登录,/sbin/nologin
为禁止登录)。
查看命令:
cat /etc/passwd # 显示所有用户信息
若需过滤特定用户,可结合grep
:

grep "用户名" /etc/passwd # grep "nginx" /etc/passwd
(2)/etc/shadow
文件
存储用户密码加密信息及账户属性(如密码过期时间、是否锁定),仅root可读,格式为:用户名:密码密文:上次修改时间:最小间隔:最大有效期:警告期:非活跃期:过期时间
。
- 关键字段:
- 密码密文为空表示无密码;
- 若第8字段为非0,账户将在指定时间后过期失效。
查看命令(需root权限):
sudo cat /etc/shadow
使用命令行工具动态查询用户
(1)whoami
与who
whoami
:显示当前登录用户的用户名。who
:显示当前登录系统的用户列表,包含登录终端、登录时间、IP地址等信息。whoami who -u # 显示详细登录信息,如"pts/0"表示虚拟终端
(2)w
命令
比who
更详细,显示当前登录用户及其进程状态,包括负载、登录时长、当前执行的命令等。

w -h # 仅显示用户信息,不显示标题
(3)last
命令
查看用户登录历史记录,包括登录时间、来源IP、退出时间等,数据从/var/log/wtmp
文件读取。
last -n 10 # 显示最近10条登录记录 last "用户名" # 查看指定用户的登录历史
(4)id
命令
查询指定用户的UID、GID及所属组信息。
id # 显示当前用户的UID、GID及所有组 id "用户名" # id "mysql"
(5)getent
命令
查询系统数据库(如passwd
、group
)中的用户信息,适用于NIS、LDAP等网络身份验证场景。
getent passwd # 显示所有用户(包括网络用户) getent passwd | grep "用户名" # 过滤特定用户
查看用户所属组信息
(1)/etc/group
文件
存储组信息,格式为:组名:组密码占位符:GID:组成员列表
。
cat /etc/group
(2)groups
命令
显示当前用户所属的组,或指定用户的组信息。
groups # 当前用户所属组 groups "用户名" # groups "www"
查看活跃用户及进程
ps
与top
结合
通过查看进程所属用户,判断哪些用户正在运行进程。
ps -ef | grep "用户名" # 查看指定用户的进程 top -u "用户名" # 实时监控指定用户的CPU/内存占用
Windows服务器查看用户的方法
Windows服务器用户管理主要通过“计算机管理”工具和命令行完成,分为本地用户和域用户两类。
图形界面(GUI)操作
(1)计算机管理
- 右键点击“此电脑”→“管理”→“本地用户和组”→“用户”,可查看所有本地用户,包括用户名、描述、账户状态(启用/禁用)、创建时间等。
- 若服务器加入域,需通过“Active Directory用户和计算机”工具(需域控制器权限)查看域用户。
(2)用户属性
双击用户名可查看详细信息,如“隶属于”选项卡可查看用户所属组,“成员资格”选项卡可查看用户加入的其他组。
命令行工具
(1)net user
命令
基础命令,查看本地用户列表及详细信息。
net user # 显示所有本地用户 net user "用户名" # 显示指定用户详细信息,如密码策略、所属组 net user "用户名" /domain # 查看域用户信息(需域环境)
(2)wmic
命令
Windows Management Instrumentation命令行工具,可查询更详细的用户信息。
wmic useraccount get name,description,disabled,lastlogon # 显示用户名、描述、状态、最后登录时间
(3)dsget
命令
域环境专用,查询域用户属性。
dsget user "CN=用户名,OU=组织单元,DC=域名,DC=com" -samid -email -memberof # 查询域用户的SAM账户名、邮箱及所属组
(4)eventvwr
查看日志
通过“事件查看器”(eventvwr.msc)的“安全日志”,可筛选“登录/注销”事件(事件ID 4624为成功登录,4634为注销),记录用户登录时间、IP、登录类型(交互式、网络等)。
云服务器查看用户的方法
云服务器(如AWS、阿里云、腾讯云)的用户管理结合了操作系统自身功能和云平台控制台,需区分“系统用户”和“云平台用户”。
系统用户查看
与上述Linux/Windows方法一致,通过SSH或RDP登录服务器后,使用命令行或GUI查询本地用户。
云平台用户管理
云平台用户(如AWS IAM用户、阿里云RAM用户)通过控制台创建和管理,用于权限控制,而非系统登录。
- AWS:在IAM控制台“用户”页面可查看所有IAM用户及其权限策略、访问密钥信息。
- 阿里云:在RAM控制台“身份管理”→“用户”查看RAM用户及其授权信息。
注意事项
- 权限控制:查看
/etc/shadow
、Windows SAM文件等敏感信息需管理员权限,避免普通用户接触。 - 用户类型区分:Linux的“系统用户”(UID<1000,如
nginx
、mysql
)通常无登录权限,需通过/etc/passwd
的Shell
字段判断;Windows的“内置用户”(如Administrator
、Guest
)需谨慎管理。 - 日志审计:定期查看登录日志(如Linux的
/var/log/secure
、Windows事件日志),及时发现异常登录行为。
相关问答FAQs
问题1:Linux中如何区分系统用户和普通用户?
解答:系统用户与普通用户的主要区别在于UID和登录权限,系统用户UID通常小于1000(不同发行版可能略有差异,如CentOS 7中UID<1000为系统用户),且其/etc/passwd
文件的Shell
字段多为/sbin/nologin
(禁止登录),用于运行服务(如www-data
、postgres
);普通用户UID≥1000,Shell
字段为/bin/bash
或/bin/zsh
,允许登录系统,可通过以下命令快速过滤系统用户:
awk -F: '$3 < 1000 {print $1}' /etc/passwd # 显示系统用户
问题2:Windows服务器如何禁用不需要的用户账户?
解答:可通过图形界面或命令行禁用用户账户。
- 图形界面:打开“计算机管理”→“本地用户和组”→“用户”,右键点击目标用户(如
Guest
),选择“属性”→“常规”→勾选“账户已禁用”→“确定”。 - 命令行:使用
net user
命令,格式为net user "用户名" /active:no
,例如禁用Guest
账户:net user Guest /active:no
若需重新启用,将
no
改为yes
即可,禁用后,用户将无法通过任何方式(如远程桌面、网络登录)访问服务器。