forked from S2i2S/IPA-CreazioneUtenti
55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Formato del file di input CSV:
|
|
# login,email,lab,*gruppi
|
|
#
|
|
if [ $# -lt 1 ] ; then
|
|
echo "È necessario passare il path del file con la lista di utenti come primo ed eventualmente unico argomento"
|
|
exit 1
|
|
fi
|
|
|
|
SOURCE=$1
|
|
CMDU='/usr/bin/ipa user-add --random --first '
|
|
CMDG='/usr/bin/ipa group-add-member'
|
|
SCRIPT="${PWD}/add-user-srv.sh"
|
|
echo "======================================"
|
|
echo "SCRIPT crea utenti di servizio/condivisi per freeipa"
|
|
echo "======================================"
|
|
|
|
###CLEANING STEP
|
|
rm -f $SCRIPT
|
|
COUNT=0
|
|
while IFS= read -r line; do
|
|
if [ -z "$line" ]
|
|
then
|
|
echo ""
|
|
else
|
|
if [ "$(echo "$line" | cut -c 1)" = '#' ] ; then
|
|
echo "SKIP " $line
|
|
else
|
|
COMMA=$(echo "$line" | awk -F "," '{print NF-1}')
|
|
if [ $COMMA -lt 1 ] ; then
|
|
echo "$line miss information"
|
|
else
|
|
COUNT=$((COUNT+1))
|
|
LOGIN=$( echo $line | awk -F "," '{print $1}')
|
|
EMAIL=$( echo $line | awk -F "," '{print $2}')
|
|
BODY="$CMDU \"$LOGIN\" --last \"$LOGIN\" --displayname \"$LOGIN\" --homedir /dev/null --shell /usr/sbin/nologin --email $EMAIL $LOGIN"
|
|
echo "$BODY" >> $SCRIPT
|
|
|
|
if [ $COMMA -ge 2 ] ; then
|
|
ARRAY=(${line//,/ })
|
|
for (( c=2; c<${#ARRAY[@]}; c++ ))
|
|
do
|
|
echo "${#ARRAY[@]} ===== ${ARRAY[$c]}"
|
|
BODY="$CMDG ${ARRAY[$c]} --users=$LOGIN"
|
|
echo "$BODY" >> $SCRIPT
|
|
done
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done < "$SOURCE"
|
|
|
|
echo "------FINISHED"
|