Mac-Osx

在 OS X 上添加守護程序帳戶

  • March 21, 2015

我試圖在我的機器上手動安裝一個守護程序(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 文件不會更新。我相信它們會在重新啟動時更新。

引用自:https://serverfault.com/questions/182347