Mac-Osx
在 OS X 上添加守護程序帳戶
我試圖在我的機器上手動安裝一個守護程序(Oracle Grid Engine),我希望它在一個獨立的帳戶下執行。使用目錄服務向 OS X 上的本地電腦添加“系統”帳戶的首選方法是什麼?其中很多都存在於 /etc/passwd (
_www
,_dovecot
等) 中,但該文件頂部的註釋說它除了在單使用者模式下不使用。我在 10.6 上執行,不需要任何特殊的網路帳戶管理。我希望有一些簡單的東西——相當於
useradd
幾乎所有其他類 Unix 作業系統。
dscl 是您要查找的命令。
我嘗試了par中的腳本,發現了一些問題。所以我為一個特定的使用者 ID 和 OS X Mavericks (10.9) 修改了它。
我發現在 Mavericks 下的使用者帳戶中添加了一些無關的記錄——一個 PasswordPolicyOptions 和一個 AuthenticationAuthority 記錄——需要將其刪除以正確模仿其他內置服務使用者帳戶(如 _www)。
我還將密碼和實名記錄添加到組帳戶。
我為 WSGI 服務帳戶創建了一個自定義的一次性腳本。這是更新的腳本。
#! /bin/bash # # Check that we are superuser (i.e. $(id -u) is zero) if (( $(id -u) )) then echo "This script needs to run as root" exit 1 fi username_=wsgi uid_=240 realname_="WSGI Daemon" dscl . -create /Groups/_$username_ dscl . -create /Groups/_$username_ PrimaryGroupID $uid_ dscl . -create /Groups/_$username_ RecordName _$username_ $username_ dscl . -create /Groups/_$username_ RealName $realname_ dscl . -create /Groups/_$username_ Password \* dscl . -create /Users/_$username_ dscl . -create /Users/_$username_ NFSHomeDirectory /xpt/local/apache2/wsgi/api dscl . -create /Users/_$username_ Password \* dscl . -create /Users/_$username_ PrimaryGroupID $uid_ dscl . -create /Users/_$username_ RealName $realname_ dscl . -create /Users/_$username_ RecordName _$username_ $username_ dscl . -create /Users/_$username_ UniqueID $uid_ dscl . -create /Users/_$username_ UserShell /usr/bin/false dscl . -delete /Users/_$username_ PasswordPolicyOptions dscl . -delete /Users/_$username_ AuthenticationAuthority
請注意,執行此腳本後,/etc/passwd 和 /etc/groups 文件不會更新。我相信它們會在重新啟動時更新。