#!/bin/bash . .env . funcs uid=$1 if user_exists $uid; then true else echo "User $uid does not exist." exit 1 fi group_ofnames="dn: cn=%GROUP%,$GROUPSDN changeType: modify delete: member member: uid=%UID%,$PEOPLEDN" group_posix="dn: cn=%GROUP%,$GROUPSDN changeType: modify delete: memberUid memberUid: %UID%" # remove uid ($1) from args so that only the list # of groups remains in $@ shift # remove user from each of the groups given for g in $@; do if group_exists $g ; then if group_is_posix $g; then user_is_posix $uid || echo "User $uid is not a posixAccount, skipping posixGroup $g..." && continue group="$group_posix" else group="$group_ofnames" fi echo "$group" | sed \ -e "s/%GROUP%/$g/" \ -e "s/%UID%/$uid/" | ldapmodify $LDAPOPTS else echo "Group $g does not exist, skipping..." fi done