I have a script that creates this now, the script is still with in testing phases so it may or may not work 100% please use at your own risk, and if you make any tweaks let me know to make it better.
Code:
#!/bin/bash
if [ -z $1 ] ; then
echo "usage: `basename $0` [username] [password] ([UID] optional) ([GID] optional)"
exit 1
fi
USERNAME=$1
PASSWORD=$2
USERID=$3
GROUPID=$4
if [ `uname -r | cut -c1` = 8 ] ; then
PATH='/NetInfo/root'
elif [ `uname -r | cut -c1` = 9 ] ; then
PATH='/Local/Default'
else
exit 1
fi
if [ -z $GROUPID ] || [ -z $UNIQUEID ] ; then
GROUPID=0
UNIQUEID=489
fi
checkUser ()
{
if [[ `/usr/bin/dscl localhost list /Local/Default/Users | /usr/bin/grep "$USERNAME" | /usr/bin/grep -v "$USERNAME." | /usr/bin/grep -v ".$USERNAME"` == "$USERNAME" ]] ; then
echo "the username '$USERNAME' already exists"
exit 1
fi
}
makeUser ()
{
/usr/bin/sudo /usr/bin/dscl localhost create $PATH/Users/$USERNAME
/usr/bin/sudo /usr/bin/dscl localhost create $PATH/Users/$USERNAME PrimaryGroupID 0
/usr/bin/sudo /usr/bin/dscl localhost create $PATH/Users/$USERNAME UniqueID 0
/usr/bin/sudo /usr/bin/dscl localhost create $PATH/Users/$USERNAME UserShell /bin/bash
/usr/bin/sudo /usr/bin/dscl localhost passwd $PATH/Users/$USERNAME $PASSWORD
/usr/bin/sudo /usr/bin/dscl localhost append $PATH/Groups/admin GroupMembership $USERNAME
}
moveUser ()
{
/bin/echo "creating new admin account homedir…"
/bin/mkdir -p /var/home/$USERNAME
/usr/bin/ditto -rsrc -V /System/Library/User\ Template/English.lproj/ /var/home/$USERNAME/
/usr/sbin/chown -Rf $USERNAME:admin /var/home/$USERNAME
/bin/echo "confirming what we just did…"
/bin/ls /var/home/$USERNAME/
/usr/bin/id $USERNAME
/bin/echo "if that looks good, we're all set."
}
deleteUser ()
{
/usr/bin/sudo /usr/bin/dscl localhost delete $PATH/Users/$USERNAME
/usr/bin/sudo /usr/bin/dscl localhost delete $PATH/Groups/admin GroupMembership $USERNAME
}
hideUser ()
{
/usr/bin/sudo /bin/cp -n /Library/Preferences/com.apple.loginwindow.plist /Library/Preferences/com.apple.loginwindow.plist.backup
/usr/bin/sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool TRUE
/usr/bin/sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array $USERNAME
/usr/bin/sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE
}
checkUser
makeUser
moveUser
hideUser
#deleteUser
You will need to fill in the blanks, and it also moves the hidden account's home directory to /private/var/home