#!/bin/bash ## Add User on the OSX Command Line # From: http://wiki.freegeek.org/index.php/Mac_OSX_adduser_script if [ $# != 1 ]; then echo "Usage: ${0##*/} newusername" exit 1 fi sudo true username=$1 password=$RANDOM$RANDOM$RANDOM$RANDOM if [ -z "$password" ]; then echo Uh-oh. \$password was empty, for some reason. exit 2 fi # echo -n "Is this an administrative user? (y/n) " # read GROUP_ADD GROUP_ADD=n # force non-admin for now if [ "$GROUP_ADD" = n ] ; then SECONDARY_GROUPS="staff" # for a non-admin user elif [ "$GROUP_ADD" = y ] ; then SECONDARY_GROUPS="admin _lpadmin _appserveradm _appserverusr" # for an admin user else echo "You did not make a valid selection!" fi # Create a UID that is not currently in use echo "Creating an unused UID for new user..." # Find out the next available user ID MAXID=$(sudo dscl . -list /Users UniqueID | awk '{print $2}' | sort -ug | tail -1) USERID=$((MAXID+1)) echo "Creating necessary files..." sudo dscl . -create /Users/$username sudo dscl . -create /Users/$username UserShell /bin/bash sudo dscl . -create /Users/$username RealName "$username" sudo dscl . -create /Users/$username UniqueID "$USERID" sudo dscl . -create /Users/$username PrimaryGroupID 20 sudo dscl . -create /Users/$username NFSHomeDirectory /Users/$username sudo dscl . -passwd /Users/$username $password for n in $SECONDARY_GROUPS ; do echo "Adding user to group: $n" sudo dseditgroup -o edit -t user -a $username $n done # Create the home directory echo "Creating home directory..." sudo createhomedir -c 2>&1 | grep -v "shell-init" echo "Created user #$USERID: $username"