Tôi đã thử kịch bản từ mệnh , và tìm thấy một vài vấn đề. Vì vậy, tôi đã sửa đổi nó cho một userid cụ thể và cho OS X Mavericks (10.9).
Tôi thấy rằng có một vài bản ghi không liên quan được thêm vào tài khoản Người dùng trong Mavericks - một bản ghi PasswordPolicyOptions và một bản ghi xác thực - cần phải được xóa để bắt chước chính xác các tài khoản người dùng dịch vụ tích hợp khác (như _www).
Tôi cũng đã thêm các bản ghi Mật khẩu và RealName vào tài khoản Nhóm.
Tôi đã tạo một tập lệnh tùy chỉnh, một lần, chỉ dành cho tài khoản dịch vụ WSGI. Đây là kịch bản cập nhật.
#! /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
Lưu ý rằng sau khi chạy tập lệnh này, các tập tin / etc / passwd và / etc / Groups không được cập nhật. Tôi tin rằng chúng được cập nhật khi khởi động lại.