#!/bin/sh # Add the user name username="XXXXXXX" # Add the display name of the User displayName="XXXXXXXXXXXXX" # Set the password for the user password="XXXXXX" # If admin account is needed then set "yes" else "no" admin="XX" # If hidden account is needed then set "yes" else "no" hidden="XX" # Set the password hint if required. Else set empty string "" passwordhint="XX" # Set the account image if required. Else set empty string "" accountimage="XX" ##### DO NOT EDIT BELOW CODE ##### if id "$username" &>/dev/null; then echo "$username already exists. Exiting script" exit 1 fi # determine next available UID highestUID=$( dscl . -list /Users UniqueID | /usr/bin/awk '$2>m {m=$2} END { print m }' ) nextUID=$(( ${highestUID//[ $'\001'-$'\037']}+1 )) echo "Creating user with username: $username, displayName: $displayName, password: $password" echo "isAdminAccount: $admin, isHidden: $hidden, passwordHint: $passwordhint, accountimage: $accountimage" dscl . -create "/Users/$username" dscl . -create "/Users/$username" RealName "$displayName" dscl . -passwd "/Users/$username" "$password" dscl . -create "/Users/$username" UniqueID "$nextUID" dscl . -create "/Users/$username" UserShell /bin/bash # make the account admin, if specified if [[ "$admin" = "yes" ]]; then dscl . -create "/Users/$username" PrimaryGroupID 80 dscl . append /Groups/admin GroupMembership "$username" else dscl . -create "/Users/$username" PrimaryGroupID 20 fi # hide the account, if specified if [[ "$hidden" = "yes" ]]; then dscl . create "/Users/$username" IsHidden 1 dscl . create "/Users/$username" NFSHomeDirectory "/private/var/$username" cp -R /System/Library/User\ Template/English.lproj "/Users/$username" chown -R "$username:admin" "/Users/$username" else dscl . create "/Users/$username" NFSHomeDirectory "/Users/$username" cp -R /System/Library/User\ Template/English.lproj "/Users/$username" chown -R "$username:staff" "/Users/$username" fi # set password hint if mentioned if [ ! -z "$passwordhint" ]; then dscl . -create "/Users/$username" hint "$passwordhint" fi # set account image if mentioned if [ ! -z "$accountimage" ]; then dscl . -create "/Users/$username" picture "$accountimage" fi echo "Successfully created the account"