36 lines
625 B
Bash
36 lines
625 B
Bash
#!/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 $? |