Probé el script desde el par y encontré algunos problemas. Así que lo modifiqué para un ID de usuario específico y para OS X Mavericks (10.9).
Descubrí que había un par de registros extraños agregados a la cuenta de usuario en Mavericks, un PasswordPolicyOptions y un registro AuthenticationAuthority, que debían eliminarse para imitar correctamente otras cuentas de usuario de servicios incorporados (como _www).
También agregué los registros de Contraseña y RealName a la cuenta del Grupo.
Creé un script personalizado, único, solo para una cuenta de servicio WSGI. Aquí está el script actualizado.
#! /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
Tenga en cuenta que después de ejecutar este script, los archivos / etc / passwd y / etc / groups no se actualizan. Creo que se actualizan al reiniciar.