changed name to script and various

This commit is contained in:
Franca Debole 2021-06-07 11:17:36 +02:00
parent 2b88e573d5
commit da69e98b07
5 changed files with 216 additions and 1 deletions

107
createNUSER-AREA-SRV.sh Normal file
View File

@ -0,0 +1,107 @@
#!/bin/bash
#
# Formato del file di input CSV:
# login,Nome,Cognome,email,grp,referente
#
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
echo "======================================"
echo "SCRIPT crea utenti per freeipa "
echo "======================================"
SOURCE=$1
CMD1='/usr/bin/ipa user-add'
CMD2='/usr/bin/ipa group-add-member'
GRP_IS='area-users'
GRP_SM='smtp-user'
GRP_IM='imap-user'
GRP_SRV='area-services'
# Crea una directory temporanea nella home dell'utente, altrimenti esecuzioni da parte di utenti diversi sono destinate a fallire.
DIR_TEMP="${HOME}/naccount"
PASSWORDFILE=$( mktemp /var/tmp/utentiepassword.XXXXXX)
SCRIPT="${DIR_TEMP}/add-area-new-user.sh"
HAT=$'PER REFERENTE DI RETE ACCOUNT di SERVIZIO per AREA CREATO: '
UPPER_BODY=$'INOLTRARE LA SEGUENTE EMAIL CON CREDENZIALI AL PROPRIO UTENTE DI LABORATORIO\n\nGent.le utente\nIl tuo account AREA-CNR è stato creato.\nCon questo account potrai accedere ai vari servizi messi a disposizione dall\'istituto.\n\nIMPORTANTE: Accedi con le seguenti credenziali alla url https://nsidm.isti.cnr.it/ipa/ui/ e segui la procedura guidata per il cambio password.\n\n'
LOWER_BODY=$'\nATTENZIONE: non utilizzare i servizi senza aver completato la procedura di cambio password,\nin caso contrario l\'account potrebbe essere bloccato temporaneamente dagli amministratori per questioni inerenti la sicurezza.\nUna volta completata la procedura di cui sopra puoi procedere alla configurazione della posta (webmail e/o client)\ne di eventuali altri servizi seguendo le istruzioni che trovi alla pagina:\nhttps://mediawiki-s2i2s.isti.cnr.it/wiki\n\n\nPer eventuali segnalazioni https://redmine-s2i2s.isti.cnr.it/\nQuesta comunicazione è inviata in modalità automatica: ti preghiamo di non rispondere.\n\nGrazie\nS2I2S Team\n'
###CLEANING STEP
rm -fr /var/tmp/utentiepassword.*
rm -fr $DIR_TEMP
mkdir -p $DIR_TEMP
rm -f $PASSWORDFILE
touch $PASSWORDFILE
rm -f $SCRIPT
echo $UPPER_BODY
COUNT=0
echo "------CREATING PASSWORD AND STORING ON ${PASSWORDFILE}."
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 -ge 2 ] ; then
COUNT=$((COUNT+1))
LENGTH=
if [ $# -lt 2 ] ; then
LENGTH=15
else
LENGTH=$1
fi
psw=$(openssl rand -base64 ${LENGTH} |sha256sum |head -c${LENGTH})
echo $line | sed -e "s/$/,$psw/g" >> $PASSWORDFILE
LOGIN=$( echo $line | awk -F "," '{print $1}')
ACC="$DIR_TEMP/$LOGIN"
touch $ACC
U1="Il tuo username è: $LOGIN"
U2="La tua password provvisoria è: $psw"
STR="${U1}"$'\n '"${U2}"$'\n\n'
H="${HAT}$LOGIN"$'\n'
BODY="$H$UPPER_BODY ${STR}$LOWER_BODY"
echo "$BODY" >> $ACC
else
echo "$line miss information"
fi
fi
fi
done < "$SOURCE"
echo "------PASSWORD AND MAIL CREATION COMPLETED for $COUNT user."
MAIL='/bin/mail -r s2i2s@isti.cnr.it'
SUB_MAIL="'Nuovo utente di servizio per AREA inserito in sistema ISTI-CNR'"
if [ $COUNT -ge 1 ] ; then
### $last contains password
awk -F "," 'NF == 7 { print "echo",$7,"| ipa user-add",$1,"--first \"",$2,"\" --last \"",$3,"\" --email",$4,"--password ;",var,"-s",vars,$6,"<",$1,";",varc2,vargis, "--users=",$1,";",varc2,vargim, "--users=",$1,";",varc2,vargsm, "--users=",$1,";",varc2,$5, "--users=",$1 }' var="${MAIL}" vars="${SUB_MAIL}" varc2="${CMD2}" vargis="${GRP_IS}" vargim="${GRP_IM}" vargsm="${GRP_SM}" varsrv="${GRP_SRV}" $PASSWORDFILE > $SCRIPT
# Rimozione degli spazi all'interno delle " prima per first e poi per last
# Il replace e' customizzato per la riga di comando passata che ha prima
# --first e poi --last e poi --email
sed -i -e 's/users=\ /users=/g' $SCRIPT
sed -i -e 's/\-\-first\ \"\ \(.*\)\ \" \-\-last/\-\-first\ \"\1\" \-\-last/' $SCRIPT
sed -i -e 's/\-\-last\ \"\ \(.*\)\ \" \-\-email/\-\-last\ \"\1\" \-\-email/' $SCRIPT
### RUNNING SCRIPT
chmod +x $SCRIPT
echo "Run 'cd $DIR_TEMP ; bash $SCRIPT' to actually run the script"
else
echo "------FINISHED"
fi

107
createNUSER-AREA.sh Normal file
View File

@ -0,0 +1,107 @@
#!/bin/bash
#
# Formato del file di input CSV:
# login,Nome,Cognome,email,grp,referente
#
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
echo "======================================"
echo "SCRIPT crea utenti per freeipa "
echo "======================================"
SOURCE=$1
CMD1='/usr/bin/ipa user-add'
CMD2='/usr/bin/ipa group-add-member'
GRP_IS='area-users'
GRP_SM='smtp-user'
GRP_IM='imap-user'
# Crea una directory temporanea nella home dell'utente, altrimenti esecuzioni da parte di utenti diversi sono destinate a fallire.
DIR_TEMP="${HOME}/naccount"
PASSWORDFILE=$( mktemp /var/tmp/utentiepassword.XXXXXX)
SCRIPT="${DIR_TEMP}/add-area-new-user.sh"
HAT=$'PER REFERENTE DI RETE ACCOUNT AREA CREATO: '
UPPER_BODY=$'INOLTRARE LA SEGUENTE EMAIL CON CREDENZIALI AL PROPRIO UTENTE DI LABORATORIO\n\nGent.le utente\nIl tuo account AREA-CNR è stato creato.\nCon questo account potrai accedere ai vari servizi messi a disposizione dall\'istituto.\n\nIMPORTANTE: Accedi con le seguenti credenziali alla url https://nsidm.isti.cnr.it/ipa/ui/ e segui la procedura guidata per il cambio password.\n\n'
LOWER_BODY=$'\nATTENZIONE: non utilizzare i servizi senza aver completato la procedura di cambio password,\nin caso contrario l\'account potrebbe essere bloccato temporaneamente dagli amministratori per questioni inerenti la sicurezza.\nUna volta completata la procedura di cui sopra puoi procedere alla configurazione della posta (webmail e/o client)\ne di eventuali altri servizi seguendo le istruzioni che trovi alla pagina:\nhttps://mediawiki-s2i2s.isti.cnr.it/wiki\n\n\nPer eventuali segnalazioni https://redmine-s2i2s.isti.cnr.it/\nQuesta comunicazione è inviata in modalità automatica: ti preghiamo di non rispondere.\n\nGrazie\nS2I2S Team\n'
###CLEANING STEP
rm -fr /var/tmp/utentiepassword.*
rm -fr $DIR_TEMP
mkdir -p $DIR_TEMP
rm -f $PASSWORDFILE
touch $PASSWORDFILE
rm -f $SCRIPT
echo $UPPER_BODY
COUNT=0
echo "------CREATING PASSWORD AND STORING ON ${PASSWORDFILE}."
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 -ge 2 ] ; then
COUNT=$((COUNT+1))
LENGTH=
if [ $# -lt 2 ] ; then
LENGTH=15
else
LENGTH=$1
fi
psw=$(openssl rand -base64 ${LENGTH} |sha256sum |head -c${LENGTH})
echo $line | sed -e "s/$/,$psw/g" >> $PASSWORDFILE
LOGIN=$( echo $line | awk -F "," '{print $1}')
ACC="$DIR_TEMP/$LOGIN"
touch $ACC
U1="Il tuo username è: $LOGIN"
U2="La tua password provvisoria è: $psw"
STR="${U1}"$'\n '"${U2}"$'\n\n'
H="${HAT}$LOGIN"$'\n'
BODY="$H$UPPER_BODY ${STR}$LOWER_BODY"
echo "$BODY" >> $ACC
else
echo "$line miss information"
fi
fi
fi
done < "$SOURCE"
echo "------PASSWORD AND MAIL CREATION COMPLETED for $COUNT user."
MAIL='/bin/mail -r s2i2s@isti.cnr.it'
SUB_MAIL="'Nuovo utente per AREA inserito in sistema ISTI-CNR'"
if [ $COUNT -ge 1 ] ; then
### $last contains password
awk -F "," 'NF == 7 { print "echo",$7,"| ipa user-add",$1,"--first \"",$2,"\" --last \"",$3,"\" --email",$4,"--password ;",var,"-s",vars,$6,"<",$1,";",varc2,vargis, "--users=",$1,";",varc2,vargim, "--users=",$1,";",varc2,vargsm, "--users=",$1,";",varc2,$5, "--users=",$1 }' var="${MAIL}" vars="${SUB_MAIL}" varc2="${CMD2}" vargis="${GRP_IS}" vargim="${GRP_IM}" vargsm="${GRP_SM}" $PASSWORDFILE > $SCRIPT
# Rimozione degli spazi all'interno delle " prima per first e poi per last
# Il replace e' customizzato per la riga di comando passata che ha prima
# --first e poi --last e poi --email
sed -i -e 's/users=\ /users=/g' $SCRIPT
sed -i -e 's/\-\-first\ \"\ \(.*\)\ \" \-\-last/\-\-first\ \"\1\" \-\-last/' $SCRIPT
sed -i -e 's/\-\-last\ \"\ \(.*\)\ \" \-\-email/\-\-last\ \"\1\" \-\-email/' $SCRIPT
### RUNNING SCRIPT
chmod +x $SCRIPT
echo "Run 'cd $DIR_TEMP ; bash $SCRIPT' to actually run the script"
else
echo "------FINISHED"
fi

View File

@ -111,3 +111,4 @@ echo "Run 'cd $DIR_TEMP ; bash $SCRIPT' to actually run the script"
else
echo "------FINISHED"
fi

View File

@ -11,7 +11,7 @@ fi
SOURCE=$1
CMDU='/usr/bin/ipa user-add --random --first '
CMDG='/usr/bin/ipa group-add-member'
SCRIPT="${PWD}/add-user-srv-shrd.sh"
SCRIPT="${PWD}/add-user-srv.sh"
echo "======================================"
echo "SCRIPT crea utenti di servizio/condivisi per freeipa"
echo "======================================"