Skip to content

Instantly share code, notes, and snippets.

@talkingmoose
Last active October 24, 2022 21:01
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save talkingmoose/e0536816d0982a0a6f33afe3c652c69f to your computer and use it in GitHub Desktop.
Save talkingmoose/e0536816d0982a0a6f33afe3c652c69f to your computer and use it in GitHub Desktop.
Removes all users with UIDs greater than 500 from local admin group.
#!/bin/zsh
# these local accounts will not be removed from admins
# one account name per line; keep the beginning and closing quotes
exceptionsList="talkingmoose
bill.smith
oszein
jamfadmin"
# list all users with UIDs greater than or equal to 500
localUsers=$( /usr/bin/dscl /Local/Default -list /Users uid | /usr/bin/awk '$2 >= 500 { print $1 }' )
echo "List of local accounts:
$localUsers\n"
# remove all but those in exceptions list from local admins group
while IFS= read aUser
do
if [ ! $( /usr/bin/grep "$aUser" <<< "$exceptionsList" ) ] ; then
/usr/sbin/dseditgroup -o edit -d "$aUser" -t user admin
echo "Removed user: $aUser from admins group"
fi
done <<< "$localUsers"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment