From 4a5a7abccaa7ad51ca22146ad7f99273eba3e71b Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Thu, 23 Aug 2012 18:21:12 -0400 Subject: [PATCH] Added disco-linux-ents ball, made users use it. --- .../files/usr/sbin/disco-linux-ents | 36 +++++++++++++++++++ balls/users/requires | 1 + balls/users/scripts/00-makeusers.sh | 22 ++++++------ 3 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 balls/disco-linux-ents/files/usr/sbin/disco-linux-ents create mode 100644 balls/users/requires diff --git a/balls/disco-linux-ents/files/usr/sbin/disco-linux-ents b/balls/disco-linux-ents/files/usr/sbin/disco-linux-ents new file mode 100644 index 0000000..9ee4b13 --- /dev/null +++ b/balls/disco-linux-ents/files/usr/sbin/disco-linux-ents @@ -0,0 +1,36 @@ +#!/bin/bash + +DEL="" +ADD="" +MOD="" +GETENT="" + +HOSTNAME=$(hostname) + +if [ "$1" == "user" ]; then + GETENT="passwd" + DEL="userdel" + ADD="useradd" + MOD="usermod" +elif [ "$1" == "group" ]; then + GETENT="group" + DEL="groupdel" + ADD="groupadd" + MOD="groupmod" +fi + +NAME="$2" +op="$3" + +PARAMS=$(disco-param get ${HOSTNAME}/users/${op}/${NAME}) +getent ${GETENT} | grep "^${NAME}" 2>&1 | disco-shutup +RETVAL=$? +if [ $RETVAL -eq 0 ] && [ "$op" == "absent" ]; then + ${DEL} ${NAME} +elif [ $RETVAL -eq 0 ]; then + ${MOD} ${PARAMS} ${NAME} +elif [ "$op" == "present" ]; then + ${ADD} ${PARAMS} ${NAME} +fi + +exit $? \ No newline at end of file diff --git a/balls/users/requires b/balls/users/requires new file mode 100644 index 0000000..a514245 --- /dev/null +++ b/balls/users/requires @@ -0,0 +1 @@ +disco-linux-ents \ No newline at end of file diff --git a/balls/users/scripts/00-makeusers.sh b/balls/users/scripts/00-makeusers.sh index 1f54eb0..574b7de 100644 --- a/balls/users/scripts/00-makeusers.sh +++ b/balls/users/scripts/00-makeusers.sh @@ -11,17 +11,15 @@ HOSTNAME=$(hostname) -for username in $(disco-param keys ${HOSTNAME}/users) +RETVAL=0 + +for op in present absent do - NAME=$username - PARAMS=$(disco-param get ${HOSTNAME}/users/${NAME}) - getent passwd | grep "^${NAME}" 2>&1 | disco-shutup - RETVAL=$? - if [ $RETVAL -eq 0 ] && [ "$PARAMS" == "" ]; then - userdel ${NAME} - elif [ $RETVAL -ne 0 ]; then - usermod ${PARAMS} ${NAME} - elif [ "$PARAMS" != "" ]; then - useradd ${PARAMS} ${NAME} - fi + for username in $(disco-param keys ${HOSTNAME}/users/${op}) + do + disco-linux-ents user $username $op + RETVAL=$(expr $RETVAL + $?) + done done + +exit $RETVAL \ No newline at end of file