From a1a755c9bce7ed5a6422489675c6c80d294520ec Mon Sep 17 00:00:00 2001 From: badra001 Date: Tue, 16 Sep 2025 13:24:02 -0400 Subject: [PATCH] add script for checking groups --- local-app/bin/check-groups.sh | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 local-app/bin/check-groups.sh diff --git a/local-app/bin/check-groups.sh b/local-app/bin/check-groups.sh new file mode 100755 index 00000000..99bd1efa --- /dev/null +++ b/local-app/bin/check-groups.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +cleanup() +{ + local rstatus=$? + if [[ ! -z $TMPDIR ]] && [[ -e $TMPDIR ]] + then + rm -rf $TMPDIR + fi + exit $rstatus +} +trap cleanup EXIT + +VERSION="1.0.0" +THIS=$(basename $0) +export TMPDIR=$(/bin/mktemp -d /tmp/check-groups.XXXXXXXX) || (echo "#* error making TMPDIR" && exit 1) +#OUTFILE="$(basename $THIS .sh).$(date +%s).txt" +OUTFILE="$TMPDIR/$(basename $THIS .sh).$(date +%s).txt" + +if [ -z "$1" ] +then + FILE=groups.csv +else + FILE=$1 +fi + +ts=$(date +%s) +c=0 +for f in $(awk -F, 'NR>1 {print $1}' $FILE) +do + c=$(( c + 1 )) + /apps/terraform/bin/ldapsearch -LLL cn=$f member |grep ^member: | grep -v cn=p- | sed -e 's/,.*$//' -e 's/^.*=//' > $TMPDIR/group_$f + echo "* group $f members $(wc -l $TMPDIR/group_$f | awk '{print $1}')" +done +cat $TMPDIR/group_* | sort > $TMPDIR/members +sort -u $TMPDIR/members > $TMPDIR/members.csv +echo "n_groups username" +uniq -c $TMPDIR/members | sort -nr|awk '{print $1,$2}' +m=$(wc -l $TMPDIR/members.csv|awk '{print $1}') + +te=$(date +%s) +tx=$(( te - ts )) +echo "" +echo "summary: groups $c members $m elapsed $tx" + +echo "" +check-users.sh $TMPDIR/members.csv