從命令行創建MacOS X用戶的正確方法是什麼?只能用於運行服務器應用程序?例如,Apache httpd已經有'_www'用戶,但是對於新應用程序,我希望它使用自己的帳戶。在MacOS X上創建運行守護進程的用戶?
5
A
回答
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/
相關問題
- 1. Python:在Windows7中運行守護進程
- 2. 創建守護進程線程
- 3. 創建自定義Ubuntu守護進程
- 4. 通過rsh運行守護進程
- 5. 將SBT作爲守護進程運行
- 6. 運行web.py作爲守護進程
- 7. 如何運行docker守護進程?
- 8. 如何以特定用戶身份運行Ruby守護進程?
- 9. 如何在Java中創建用戶定義的守護進程線程?
- 10. 我想在共享主機上運行PHP守護進程?
- 11. 在Ubuntu上運行Sidekiq作爲守護進程
- 12. 如何在Windows上運行Apache Ignite作爲守護進程
- 13. 可以在React上運行守護進程嗎?
- 14. 什麼是創建Python守護進程的事實上的庫
- 15. 使用gdb調試正在運行的守護進程
- 16. 避免守護進程運行在專用的cpu內核中
- 17. 使用python守護進程獲取OS X 10.7上的活動應用程序
- 18. Docker,無法連接到Docker守護進程。碼頭守護程序是否在該主機上運行?
- 19. 如何加載全系統守護進程在MacOS
- 20. 在Ruby中使用雙叉創建守護進程
- 21. 使用WSGI在守護進程模式下運行pdb
- 22. 創建類似服務守護進程Android應用程序
- 23. Docker - 如何將mongodb進程作爲守護進程運行
- 24. ruby守護進程 - 運行但無法運行
- 25. 如何用erlang創建守護程序?
- 26. iphone守護進程
- 27. Python守護進程
- 28. 當從守護進程運行時Telnet無法正常運行
- 29. Linux守護進程
- 30. 用Clojure/JVM守護進程
最後使用的GID可以通過命令'dscacheutil -q group | grep gid | tail -n 1' – Sphinges
[@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