在 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/
在 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/