2015-09-27 82 views

回答

7

沒有「adduser」命令。 Mac方法是使用dscl命令,它是「目錄服務命令行實用程序」。目錄服務在概念上與LDAP類似,但是是不同的解決方案。

以下示例將使用'mydaemon'作爲預期的帳戶,但通常您會使用與您的守護程序應用程序的名稱相匹配的值。

所有的守護進程用戶都以一個下劃線作爲前綴,比如_www。

要列出屬性上的現有項:

sudo dscl . -read /Users/_www 

創建用戶前,創建一個組選擇一個未使用的組ID(這裏我們選擇300):

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

一旦完成,我們創建一個新用戶(我們使用與我們爲組所用的相同的ID,不會使用外殼:

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

注,還有(基於MacOS X的10.10位置)DSCL的GUI版本:

/系統/圖書館/ CoreServices /應用/目錄\ Utility.app/

+0

最後使用的GID可以通過命令'dscacheutil -q group | grep gid | tail -n 1' – Sphinges

+1

[@sphinges](https://stackoverflow.com/users/1710017/sphinges)建議的命令是錯誤的。組ID不一定按升序排列,所以最後一個,但不一定是最高的'''dscacheutil -q group | grep gid | awk'{print $ 2}'| sort -n | tail -n 1'''應該可以更好地工作,儘管我更喜歡看到最後15個左右,因爲在260以上,它們往往很稀疏''''dscacheutil -q group | grep gid | awk'{print $ 2}'| sort -n |尾巴-n 15''' – Scott