Create Admin User - MAC

#!/bin/bash

echo "Create macOS Local Administrator Account"
echo "=========================================="

#version check
varOSMaj=$(sw_vers -productVersion | awk '{split ($0,a,"."); print a[1]}')
varOSMin=$(sw_vers -productVersion | awk '{split ($0,a,"."); print a[2]}')

if [ "$varOSMaj" -eq "10" ]
then
	if [ "$varOSMin" -lt "15" ]

			echo "! WARNING: This script has not been successfully tested on macOS versions"
			echo "  lower than 10.15 and may not work with those devices. Execution halted."
			exit 1
	fi

fi

#search for an unused userID, starting at 502
varExit=0
varUserID=501 
until [ "$varExit" -eq "1" ]
do
	varUserID=$((varUserID+1))
	dscl . -list /Users UniqueID | grep -q " $varUserID$"
	varExit=$?
	echo "- Trying ID #$varUserID..."
	sleep 1
done

echo "  SUCCESS: User ID #$varUserID is free for use."
echo "- Creating a new user: $usrUN ($usrRN)"
echo "--------------------------------"
dscl . -create /Users/$usrUN
dscl . -create /Users/$usrUN UserShell /bin/bash
dscl . -create /Users/$usrUN RealName "$usrRN"
dscl . -create /Users/$usrUN UniqueID $varUserID
dscl . -create /Users/$usrUN PrimaryGroupID 80
dscl . -create /Users/$usrUN NFSHomeDirectory /Users/$usrUN
dscl . -create /Users/$usrUN Picture "/Library/User Pictures/Instruments/Turntable.tif"
dscl . -append /Groups/admin GroupMembership $usrUN
dscl . -create /Users/$usrUN "authentication_authority" ";ShadowHash;"
dscl . -passwd /Users/$usrUN $usrPWD
cp -vR /System/Library/User\ Template/English.lproj/ /Users/$usrUN > /dev/null 2>&1
chown -R $varUserID:staff /Users/$usrUN

echo "- New user account created!"
echo "  It may be wise to reboot the device before signing into it."

Script data

Language - Bash

Run as - System / Root User

Script timeout duration - 5 Mins

Script variables

Run time variables

usrRN

usrUN

usrPWD

Read me

usrRN String User's real name. usrUN String Desired username. Do not use spaces. usrPWD String Desired password. Complex. Do not use spaces.

1