用户账户是个人在系统中的数字身份凭证,用于识别身份、管理访问权限、存储个性化设置及操作数据,是享受个性化服务和进行交互的基础。
想知道你的计算机系统上目前有哪些用户账户吗?无论是出于系统管理、安全检查还是单纯的好奇心,了解如何查看用户列表都是一项实用的基础技能。查看用户的方法取决于你使用的操作系统,下面我们将详细介绍在主流操作系统(Windows, Linux, macOS)上的操作步骤和命令。
在操作系统中,用户账户是系统识别个体身份、分配权限和资源(如文件、程序访问权)的基础,每个账户通常包含唯一的用户名(Username)和用户标识符(UID – User ID,在Linux/macOS中)或安全标识符(SID – Security Identifier,在Windows中)。
在 Linux 系统中查看用户
Linux 提供了多种命令行工具来查看用户信息,这是系统管理员最常用的方式。
-
查看
/etc/passwd
文件 (最基础的方法)- 命令:
cat /etc/passwd
- 说明: 这是存储所有本地用户账户核心信息的文本文件(注意:它不存储密码,密码存储在加密的
/etc/shadow
文件中)。 - 输出解读: 每一行代表一个用户账户,由冒号 分隔成7个字段:
用户名
:用户登录名。x
:表示密码存储在/etc/shadow
文件中。UID
:用户ID。0
代表 root(超级用户),1-999
通常是系统账户,1000
及以上是普通用户(具体范围可能因发行版而异)。GID
:用户的主要组ID。GECOS
或注释
:通常包含用户全名、房间号、电话等描述信息(可选)。家目录
:用户登录后的默认工作目录(如/home/username
)。登录Shell
:用户登录后默认启动的Shell程序(如/bin/bash
,/usr/sbin/nologin
表示该账户不能用于交互式登录)。
- 示例输出:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin ... (其他系统用户) ... alice:x:1000:1000:Alice Smith,,,:/home/alice:/bin/bash bob:x:1001:1001:Bob Johnson:/home/bob:/bin/bash
- 命令:
-
使用
getent
命令 (更通用,支持多种数据库)- 命令:
getent passwd
- 说明: 这个命令从系统数据库(包括
/etc/passwd
和可能的网络用户数据库如 LDAP、NIS)获取用户信息,输出格式与cat /etc/passwd
完全相同,在仅使用本地用户的环境中,两者结果一致,如果系统配置了网络用户服务,getent
能显示更完整的列表。 - 查看特定用户:
getent passwd username
(将username
替换为你想查询的具体用户名)。
- 命令:
-
使用
compgen
命令 (Bash Shell 内置命令)- 命令:
compgen -u
- 说明: 这个命令会列出所有用户名(仅用户名,没有其他详细信息),它非常简洁,适合只需要用户名列表的场景。
- 命令:
-
查看当前登录的用户
- 命令:
who
或w
- 说明: 这两个命令显示当前哪些用户已经登录到系统,以及他们正在做什么(
w
命令信息更详细,包括运行的程序和系统负载),这显示的是活动会话,而不是所有存在的账户。 - 示例输出 (
w
):12:34:56 up 10 days, 2:30, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT alice tty7 :0 Mon10 2days 1:15m 0.01s /usr/libexec/gnome-session-binary --session=gnome bob pts/0 192.168.1.100 12:15 5.00s 0.10s 0.00s sshd: bob [priv]
- 命令:
在 Windows 系统中查看用户
Windows 提供了图形界面和命令行两种方式。
-
图形用户界面 (GUI) 方法
- 方法 1 (本地用户和组 – 适用于专业版及以上):
- 按
Win + R
打开“运行”对话框。 - 输入
lusrmgr.msc
并按回车。 - 在打开的“本地用户和组”管理控制台中,点击左侧的“用户”文件夹,右侧窗格将列出所有本地用户账户。
- 按
- 方法 2 (计算机管理):
- 右键点击“此电脑”或“我的电脑”图标,选择“管理”。
- 在“计算机管理”窗口中,展开“系统工具” -> “本地用户和组” -> 点击“用户”。
- 方法 3 (设置 – 适用于所有版本):
- 打开“设置” (
Win + I
)。 - 转到“账户” -> “家庭和其他用户”(或“其他用户”,取决于Windows版本)。
- 在“其他用户”部分,会列出已添加的本地账户和Microsoft账户(但此列表可能不包含所有内置系统账户或通过其他方式创建的账户,不如前两种方法全面)。
- 打开“设置” (
- 方法 1 (本地用户和组 – 适用于专业版及以上):
-
命令行 (CMD 或 PowerShell) 方法
- 使用
net user
命令 (CMD/PowerShell):- 查看所有本地用户:
net user
- 查看特定用户详细信息:
net user username
(将username
替换为具体用户名) - 说明:
net user
会列出所有本地账户的用户名,它不会显示域用户(如果是域成员计算机)或某些内置系统账户(如SYSTEM
)。
- 查看所有本地用户:
- 使用 PowerShell (更强大):
- 查看所有本地用户 (基本):
Get-LocalUser
- 查看所有本地用户 (详细信息):
Get-LocalUser | Format-List *
或Get-LocalUser | Format-Table Name, Enabled, Description, SID
- 说明: PowerShell 的
Get-LocalUser
cmdlet 提供了更丰富的信息和筛选能力,是更现代、推荐的方式。
- 查看所有本地用户 (基本):
- 使用
在 macOS 系统中查看用户
macOS 基于 Unix (BSD),其方法与 Linux 类似,主要使用命令行。
-
查看
/etc/passwd
文件- 命令:
cat /etc/passwd
- 说明: 与 Linux 相同,此文件包含本地用户的核心信息,格式也完全一致(用户名:x:UID:GID:描述:家目录:登录Shell),macOS 的系统用户 UID 通常小于 500,普通用户 UID 从 501 开始。
- 命令:
-
使用
dscl
命令 (目录服务命令行工具 – 更强大,推荐)- 命令:
dscl . -list /Users
- 说明: 这是 macOS 上管理本地目录数据库(包括用户、组)的标准工具。
dscl . -list /Users
会列出所有用户名。 - 查看特定用户详细信息:
dscl . -read /Users/username
(将username
替换为具体用户名),这会显示该用户的大量属性,包括 UID、GID、家目录、Shell、真实姓名等。 - 查看所有用户 UID:
dscl . -list /Users UniqueID
- 查看所有用户及其真实姓名:
dscl . -list /Users RealName
- 命令:
-
使用
id
命令查看当前用户信息- 命令:
id
- 说明: 显示当前登录用户的 UID、GID 以及所属的所有组。
id username
可以查看指定用户的信息。
- 命令:
重要提示与安全考虑
- 权限: 在 Linux/macOS 上查看
/etc/passwd
通常不需要管理员权限,因为密码哈希值并不存储在这里(在/etc/shadow
中),执行某些管理命令(如创建/删除用户)或查看/etc/shadow
需要root
(超级用户) 权限(使用sudo
)。 /etc/passwd
与/etc/shadow
: 再次强调,/etc/passwd
是全局可读的,包含用户的基本配置信息,真正的加密密码哈希存储在/etc/shadow
文件中,该文件只有root
用户可读,这是系统安全的关键设计。- 系统用户 vs. 普通用户: 输出列表中会包含大量以
daemon
,www-data
,nobody
等命名的系统用户,这些账户通常用于运行系统服务或后台进程,一般不允许用于交互式登录,普通用户通常是你在系统安装或后期创建时自己设置的那些账户。 - 网络用户: 如果计算机加入了域(Windows)或配置了 LDAP/NIS 等网络认证服务(Linux/macOS),上述本地命令可能无法列出所有用户,需要使用域管理工具(如 Windows 的
net user /domain
)或网络目录服务查询工具(如 Linux 的getent passwd
在配置正确时会自动包含网络用户)。 - GUI vs. CLI: 图形界面通常更直观,适合普通用户快速查看主要账户,命令行(CLI)则更强大、灵活,尤其在服务器管理、脚本编写和获取详细信息方面不可或缺,是系统管理员的首选。
查看系统用户是理解和管理计算机环境的基础操作,选择哪种方法取决于你的操作系统(Windows, Linux, macOS)以及你的具体需求(是只需要用户名列表,还是需要详细信息,或是查看当前登录用户),掌握这些命令和工具,能让你更有效地进行系统监控、用户管理和故障排查,请始终注意操作的安全性和所需的权限。
引用说明:
- Linux
passwd
,getent
,who
,w
,compgen
命令的手册页 (man passwd
,man getent
,man who
,man w
,man compgen
) - Windows
net user
命令文档 (Microsoft Docs) - Windows
Get-LocalUser
PowerShell cmdlet 文档 (Microsoft Docs) - macOS
dscl
命令手册页 (man dscl
) - 操作系统安全基本原理(
/etc/passwd
和/etc/shadow
的权限设计)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7170.html