Mac OS X 中服务用户的 UID

Mac OS X 中服务用户的 UID

出于安全原因,某些第三方服务器应在特殊用户下运行(例如,PostgreSQL 通常由“postgres”运行)。当然,这些服务用户不应显示在 Mac OS X 登录窗口中。我知道如何创建隐藏用户使用dscldsimport,但我想知道分配 UID(和匹配 GID)的最佳策略是什么。Apple 的文档指出 UID 从 0 到 100 是保留的(第 69 页),但 OS X 附带了几个超出该范围的特殊用户和组。我以前使用 401 及以上的 ID 来创建服务,但我注意到 OS X 10.6 已开始使用该范围来创建通过“系统偏好设置”中的“共享”窗格创建的组。

那么,建议第三方服务使用的 ID 范围是多少?也许我应该只使用 500 范围内的 ID,因为在 Snow Leopard 中隐藏用户只需将密码设置为“*”即可?

此外,Apple 的大多数服务名称都以下划线开头,别名不带下划线;例如_sandboxsandbox。这有什么特殊意义吗?我应该对我的服务做同样的事情吗?

编辑:虽然我说的是“或dsimport”,但实际上应该使用dscl创建隐藏用户。请参阅这个帖子了解详情!

答案1

有趣的是,我在尝试整理一些Big Sur 更新期间我们收到的奇怪行为报告,然后几天后偶然发现了一个非常新的、模糊规范的答案!

在 Big Sur 中,该命令的使用信息sysadminctl已更新,添加了一个新星号,并为 -addUser 操作添加了一些新选项。我将引用相关部分(新选项以粗体显示),但这里是我能找到的唯一公开副本充分使用。

-addUser <用户名> [-fullName <全名>] [-UID <用户 ID>][-GID <群组ID>][-shell <shell 路径>] [-password <用户密码>] [-hint <用户提示>] [-home <主目录完整路径>] [-admin][-角色帐户][-picture <用户图像的完整路径>] (交互式] || -adminUser <管理员用户名> -adminPassword <管理员密码>)

*角色账户要求名称以 _ 开头,UID 在 200-400 范围内。

如果您尝试使用 -roleAccount 选项,它确实会让您使用带下划线的用户名和 200-400 范围内的 UID。

相关内容