adellam-CreazioneUtenti/createUSER-SRV-SHRD.sh

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"