菜鸟科技网

服务器用户查看方法有哪些?

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

服务器用户查看方法有哪些?-图1
(图片来源网络,侵删)

Linux服务器查看用户的方法

Linux系统是多用户多任务系统,用户信息通常存储在特定文件中,同时可通过命令行工具快速查询。

查看用户列表及相关基本信息

(1)/etc/passwd文件
这是Linux系统存储用户核心信息的文件,每行代表一个用户,格式为:用户名:密码占位符:UID:GID:用户描述:家目录:登录Shell

  • 字段说明
    • 用户名:系统登录标识;
    • UID:用户唯一ID,0为root用户;
    • GID:主组ID;
    • 用户描述:可填写用户全名或备注;
    • 家目录:用户默认登录后的主目录;
    • 登录Shell:用户默认使用的命令行解释器(如/bin/bash为可登录,/sbin/nologin为禁止登录)。

查看命令

cat /etc/passwd  # 显示所有用户信息

若需过滤特定用户,可结合grep

服务器用户查看方法有哪些?-图2
(图片来源网络,侵删)
grep "用户名" /etc/passwd  # grep "nginx" /etc/passwd

(2)/etc/shadow文件
存储用户密码加密信息及账户属性(如密码过期时间、是否锁定),仅root可读,格式为:用户名:密码密文:上次修改时间:最小间隔:最大有效期:警告期:非活跃期:过期时间

  • 关键字段
    • 密码密文为空表示无密码;
    • 若第8字段为非0,账户将在指定时间后过期失效。

查看命令(需root权限):

sudo cat /etc/shadow

使用命令行工具动态查询用户

(1)whoamiwho

  • whoami:显示当前登录用户的用户名。
  • who:显示当前登录系统的用户列表,包含登录终端、登录时间、IP地址等信息。
    whoami
    who -u  # 显示详细登录信息,如"pts/0"表示虚拟终端

(2)w命令
who更详细,显示当前登录用户及其进程状态,包括负载、登录时长、当前执行的命令等。

服务器用户查看方法有哪些?-图3
(图片来源网络,侵删)
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命令
查询系统数据库(如passwdgroup)中的用户信息,适用于NIS、LDAP等网络身份验证场景。

getent passwd  # 显示所有用户(包括网络用户)
getent passwd | grep "用户名"  # 过滤特定用户

查看用户所属组信息

(1)/etc/group文件
存储组信息,格式为:组名:组密码占位符:GID:组成员列表

cat /etc/group

(2)groups命令
显示当前用户所属的组,或指定用户的组信息。

groups  # 当前用户所属组
groups "用户名"  # groups "www"

查看活跃用户及进程

pstop结合
通过查看进程所属用户,判断哪些用户正在运行进程。

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用户及其授权信息。

注意事项

  1. 权限控制:查看/etc/shadow、Windows SAM文件等敏感信息需管理员权限,避免普通用户接触。
  2. 用户类型区分:Linux的“系统用户”(UID<1000,如nginxmysql)通常无登录权限,需通过/etc/passwdShell字段判断;Windows的“内置用户”(如AdministratorGuest)需谨慎管理。
  3. 日志审计:定期查看登录日志(如Linux的/var/log/secure、Windows事件日志),及时发现异常登录行为。

相关问答FAQs

问题1:Linux中如何区分系统用户和普通用户?
解答:系统用户与普通用户的主要区别在于UID和登录权限,系统用户UID通常小于1000(不同发行版可能略有差异,如CentOS 7中UID<1000为系统用户),且其/etc/passwd文件的Shell字段多为/sbin/nologin(禁止登录),用于运行服务(如www-datapostgres);普通用户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即可,禁用后,用户将无法通过任何方式(如远程桌面、网络登录)访问服务器。

分享:
扫描分享到社交APP
上一篇
下一篇