在 MacOS X 上为 运行 守护程序创建用户?

Create user for running a daemon, on MacOS X?

在 MacOS X 上从命令行创建用户的正确方法是什么,它将仅用于 运行 服务器应用程序?例如,Apache httpd 已经有“_www”用户,但对于新应用程序,我希望它使用自己的帐户。

没有"adduser"命令。 Mac的做法是使用dscl命令,也就是"Directory Service Command Line Utility"。目录服务在概念上与 LDAP 类似,但解决方案不同。

下面的示例将使用 'mydaemon' 作为预期帐户,但通常您会使用与守护程序应用程序名称匹配的值。

所有守护进程用户都带有下划线前缀,例如 _www。

要列出现有条目的属性:

   sudo dscl . -read /Users/_www

在创建用户之前,先创建一个组,选择一个未使用的组 ID(这里我们选择 300):

   sudo dscl . -create /Groups/_mydaemon
   sudo dscl . -create /Groups/_mydaemon PrimaryGroupID 300

完成后,我们创建一个新用户(我们使用与组相同的 ID,不会使用 shell:

   sudo dscl . -create /Users/_mydaemon UniqueID 300
   sudo dscl . -create /Users/_mydaemon PrimaryGroupID 300
   sudo dscl . -create /Users/_mydaemon UserShell /usr/bin/false

以上是查阅各种资料,亲身验证的过程。我发现有用的一个参考是:

http://minecraft.gamepedia.com/Tutorials/Create_a_Mac_OS_X_startup_daemon

注意,还有 DSCL 的 GUI 版本(位置基于 MacOS X 10.10):

/System/Library/CoreServices/Applications/Directory\Utility.app/