从命令行列出 Mac 上的用户帐户

OS X 中的终端

Mac 管理员可能会发现他们需要通过命令行显示特定 Mac 上所有用户帐户的列表。我们将介绍一些方法,供高级用户在装有任何版本的 Mac OS X 系统软件的任何 Mac 上列出所有帐户(包括用户和系统)。

一些初步的基本方法是访问登录屏幕或列出 /Users 目录的内容,尽管如果 用户帐户被隐藏然后它就不会显示在登录屏幕上,并且从 /Users 文件夹中混淆用户也同样简单。此外,/Users/ 目录中存在名称并非万无一失,因为您可以 删除用户帐户但保留该用户的主目录。因此,虽然这些方法可能适用于希望显示他们在计算机上拥有哪些用户的临时 Mac 用户,但这些方法都不足以满足大多数管理员的需求。但是,通过转到命令行,您可以显示 Mac 上的所有用户帐户,无论它们是活跃用户的一般用户帐户、管理员帐户,还是任何系统帐户。

如何从命令行列出 Mac 上的所有用户帐户

如果您还没有打开终端,可以在您想要列出用户帐户的本地机器上打开,或者通过连接到您想要查看用户帐户的远程 Mac。然后我们将使用“dscl”命令,它适用于所有版本的 Mac OS X 系统软件。

在 Mac 上查看所有用户和帐户

<代码>dscl。列表/用户

这种方法的好处(或麻烦)是它不仅列出了 Mac 上的所有用户帐户,而且还显示了每个守护进程和服务器进程帐户。这将包括 Paul、Bob、Jill 等用户名,还包括守护程序、系统帐户和进程用户,例如 networkd、windowserver、daemon、nobody、root、_spotlight、_ard、_appserver、_iconservices 等等。

如果不需要完整的用户列表,您可以通过 grep 运行输出轻松排除所有 _underscore 守护进程和进程帐户,我们将在接下来展示。

仅显示用户帐户

<代码>dscl。列表/用户 | grep -v ‘_’

此命令将过滤掉任何带 _ 下划线前缀的守护程序用户,这些用户实际上不是用户帐户。结果,您会得到一个更短的用户名列表,但您仍然会发现三个用户名,它们不是典型的用户帐户,但在 Mac OS X 安装中很常见;守护进程、nobody 和 root。

在 Mac 上显示所有用户帐户、用户目录和用户 GECOS 信息

另一种方法是显示和列出用户帐户的详细帐户列表、关联的用户帐户目录和用户帐户 GECOS 信息(通常是帐户的描述或完整的用户名)。如果您发现自己想知道上述列表中的某些系统帐户和进程用户 ID 帐户到底是什么,此方法提供了更多详细信息,包括每个帐户的 gecos 描述(例如,_qtss 用户是 QuickTime Streaming Server 守护进程)

dscacheutil -q 用户

该命令的输出将相当广泛,因此您可能希望或多或少地通过管道传输结果或将其重定向到文本文件以便于解析。

可能还有其他方法可以在 Mac 上显示所有用户帐户,无论系统版本如何,如果您知道此处未涵盖的有效信息方法,请在评论中分享。