#!/bin/bash #### Inserire il nome server dove creare la home dell'utente #parametri per home dir SERVER="newton" CONDIVISIONE="studenti" #parametri per settaggio permessi classi e studenti DISCO="E:" DIR_CLASSI="classi" DIR_STUDENTI="studenti" #### non inserire nulla dopo questa riga # crea la dir out se non esiste if [ ! -d out ] then mkdir out fi ## Creazione gruppi ELENCOC=`cat $2` #mi sposto nella dir che contiene le dir di classe echo "$DISCO" > out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_CLASSI" >> out/generazione_utenti.bat for ITEM in $ELENCOC do echo "dsadd group \"cn=g"_"$ITEM,ou=gruppi,ou=studenti,dc=dominio,dc=local\"" >> out/generazione_utenti.bat echo "md $ITEM" >> out/generazione_utenti.bat echo "cacls $ITEM /T /E /G g"_"$ITEM:C" >> out/generazione_utenti.bat echo "cacls $ITEM /T /E /r \"Domain Users\"" >> out/generazione_utenti.bat done ## Creazione utenti FILECSV=$1 MATRICOLE=`awk -F , {'print $1'} $FILECSV|sed 's/^.\{5\}//g'` #tolgo gli zeri davanti alle matricole #sed 's/^.\{5\}//g' $FILECSV > elenco_tmp0.csv # se non ci sono gli zeri scommentare la riga seguente cp $FILECSV elenco_tmp0.csv #tolgo gli spazi prima dei separatori sed 's/ ,/,/g' elenco_tmp0.csv > elenco_tmp1.csv ELENCO=`cat elenco_tmp1.csv` #imposto come separatore della bash il termine riga anzichè lo spazio export IFS=$'\n'; #cancello il file delle password echo "" > out/password.csv echo "" >> out/generazione_utenti.bat #mi sposto nella dir che contiene le home degli studenti per crearle echo "$DISCO" >> out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_STUDENTI" >> out/generazione_utenti.bat for ITEM in $ELENCO do #generazione password casuale di n caratteri presi da una matrice data PASS="" MATRICE="123456789abcdefghijklmnpqrstuvwxyz" LUNGHEZZA="8" n=1 while [ "${n:=1}" -le "$LUNGHEZZA" ] do PASS="$PASS${MATRICE:$(($RANDOM%${#MATRICE})):1}" let n+=1 done PASSWORD=$PASS MATRICOLA=`echo $ITEM|awk -F , {'print $1'}` COGNOME=`echo $ITEM|awk -F , {'print $2'}` NOME=`echo $ITEM|awk -F , {'print $3'}` CLASSE=`echo $ITEM|awk -F , {'print $4'}` echo $COGNOME"_"$MATRICOLA","$PASSWORD","$CLASSE >> out/password.csv #fine generazione password echo "dsadd user \"cn=$COGNOME"_"$MATRICOLA,ou=studenti,dc=dominio,dc=local\" -pwd $PASSWORD -memberof \"cn=g_$CLASSE,ou=gruppi,ou=studenti,dc=dominio,dc=local\" -mustchpwd yes -hmdrv z: -hmdir \\\\$SERVER\\$CONDIVISIONE\\$COGNOME"_"$MATRICOLA -loscr studente.bat" -disabled no>> out/generazione_utenti.bat echo "md $COGNOME"_"$MATRICOLA" >> out/generazione_utenti.bat echo "cacls $COGNOME"_"$MATRICOLA /T /E /G $COGNOME"_"$MATRICOLA:C" >> out/generazione_utenti.bat done echo "" >> out/generazione_utenti.bat echo "$DISCO" >> out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_STUDENTI" >> out/generazione_utenti.bat echo "cacls *.* /T /E /G docenti:C" >> out/generazione_utenti.bat echo "" >> out/generazione_utenti.bat echo "$DISCO" >> out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_STUDENTI" >> out/generazione_utenti.bat echo "cacls *.* /T /E /G \"domain admins\":C" >> out/generazione_utenti.bat echo "" >> out/generazione_utenti.bat echo "$DISCO" >> out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_CLASSI" >> out/generazione_utenti.bat echo "cacls *.* /T /E /G docenti:C" >> out/generazione_utenti.bat echo "" >> out/generazione_utenti.bat echo "$DISCO" >> out/generazione_utenti.bat echo "cd \\" >> out/generazione_utenti.bat echo "cd $DIR_CLASSI" >> out/generazione_utenti.bat echo "cacls *.* /T /E /G \"domain admins\":C" >> out/generazione_utenti.bat rm elenco_tmp0.csv rm elenco_tmp1.csv