Script Creazione Utenti Riccardo Niccolai
Da PtLUG Wiki.
Questo script è stato gentilmente messo a disposizione da Riccardo Niccolai e permette di creare utenti su un sistema Unix/Linux e di impostare alcune proprietà di default.
#----------------------------------------------------------------+ # Data : 8 marzo 2005 # Ultimo aggTo: 8 marzo 2005 # Autore : Realizzato nel laboratorio di sistemi dell'itis silvano fedi a.s. 2004-2005 # con la collaborazione degli studenti Federico Forte e Leonardo Borchi e con l'aiuto del prof. Niccolai # Nome script : creafs # Descrizione : creafs Crea File System # questo script serve per generare automaticamente # il file system relativo ad una classe ESEMPIO 5BI # CREA I GRUPPI # studenti5BI # classe5BI # docenti5BI # CREA L'ALBERO DELLE CARTELLE # IMPOSTA LE PERMISSIONI # # se vi piace miglioratelo e rimettetelo in circolazione !!!! # i commenti sono obbligatori #----------------------------------------------------- ----------+ # esempio da digitare # # ./creafs home 5bI 10 20 >& errori (il >& consente di reindirizzare sia lo standard output ">" # sia lo standard error "&" sul file errori, in questo modo al termine dell'esecuzione si possono # controllare tutti i messaggi arrivati sullo schermo semplicemente editando il file errori # #----------------------------------------------------------------+ #| $1 | $2 | $3 | $4 | #| /home | 5bi | 10 | 20 | #----------------------------------------------------------------+ #|cartella_padre|cartella_home_classe|numero_gruppi|numero_utenti| #----------------------------------------------------------------+ # mancano i controlli sui parametri di input (vedere come si può fare) #creazione dei gruppi groupadd studenti$2 # crea il gruppo studenti5bi groupadd classe$2 # crea il gruppo classe5bi groupadd docenti$2 # crea il gruppo docenti5bi # crea l'utente amministratore della classe #### useradd -p admin$2 -G classe$2 -s /bin/bash admin$2 ## comando sostituito dalle due righe successive useradd -G classe$2 -s /bin/bash admin$2 ( sleep 1 ; echo "segreta" ; sleep 1 ; echo "segreta" ) | passwd admin$2 #crea la cartella principale della classe mkdir /$1/$2 # crea la cartella /home/5bi chown admin$2 /$1/$2 # imposta l'amministratore della classe proprietario della cartella /home/5bi chgrp classe$2 /$1/$2 # imposta classe5bi come gruppo della cartella /home/5bi chmod 750 $1/$2 # imposta rwx r-x --- alla cartella /home/5bi #crea il primo livello dentro alla classe mkdir $1/$2/Consegne # crea /home/5bi/Consegne mkdir $1/$2/Gruppi # crea /home/5bi/Gruppi mkdir $1/$2/Studenti # crea /home/5bi/Studenti mkdir $1/$2/AreaComune # crea /home/5bi/AreaComune # chown admin$2 $1/$2/* # imposta admin$2 proprietario di tutte le cartelle sotto /home/5bi # chgrp classe$2 $1/$2/* # imposta classe5bi gruppo di tutte le cartelle sotto /home/5bi # chmod 750 $1/$2/Consegne # imposta rwx r-x --- alla cartella /home/5bi/Consegne chmod 750 $1/$2/Gruppi # imposta rwx r-x --- alla cartella /home/5bi/Gruppi chmod 750 $1/$2/Studenti # imposta rwx r-x --- alla cartella /home/5bi/Studenti chmod 770 $1/$2/AreaComune # imposta rwx rwx --- alla cartella /home/5bi/AreaComune #crea le sottocartelle per la consegna mkdir $1/$2/Consegne/Informatica mkdir $1/$2/Consegne/LAIN mkdir $1/$2/Consegne/Sistemi mkdir $1/$2/Consegne/LASI mkdir $1/$2/Consegne/Statistica mkdir $1/$2/Consegne/LAST mkdir $1/$2/Consegne/Matematica mkdir $1/$2/Consegne/LAMA # creazione utenti prof # qui genera un solo professore mkdir /home/Docenti # prof. rossi mkdir /home/Docenti/rossi useradd -d /home/Docenti/rossi -G docenti$2,classe$2 -s /bin/bash rossi ( sleep 1 ; echo "segreta" ; sleep 1 ; echo "segreta" ) | passwd rossi chown rossi /home/Docenti/rossi chgrp docenti$2 /home/Docenti/rossi chmod 700 /home/Docenti/rossi # prof. verdi etc.. # imposta il proprietario di ogni cartella consegna chown rossi $1/$2/Consegne/Informatica # imposta il gruppo studenti5bi a tutte le cartelle di consegna # per consentire a tutti gli utenti del gruppo di poter scrivere nelle cartelle consegne chgrp studenti$2 $1/$2/Consegne/* # imposta rwx -w- --- a tutte le cartelle delle consegne /home/5bi/Consegne/* # per consentire a tutti gli utenti del gruppo di poter scrivere nelle cartelle consegne chmod 720 $1/$2/Consegne/* #ciclo per la creazione dei gruppi i=1 while [ $i -le $3 ] do if [ $i -lt 10 ] then mkdir $1/$2/Gruppi/g$20$i groupadd g$20$i chown admin$2 $1/$2/Gruppi/g$20$i chgrp g$20$i $1/$2/Gruppi/g$20$i chmod 770 $1/$2/Gruppi/g$20$i else mkdir $1/$2/Gruppi/g$2$i groupadd g$2$i chown admin$2 $1/$2/Gruppi/g$2$i chgrp g$2$i $1/$2/Gruppi/g$2$i chmod 770 $1/$2/Gruppi/g$2$i fi let i+=1 done #ciclo per la creazione degli utenti i=1 while [ $i -le $4 ] do if [ $i -lt 10 ] then mkdir $1/$2/Studenti/u$20$i useradd -d $1/$2/Studenti/u$20$i -G classe$2,studenti$2 -s /bin/bash u$20$i ( sleep 1 ; echo "segreta" ; sleep 1 ; echo "segreta" ) | passwd u$20$i chown u$20$i $1/$2/Studenti/u$20$i chgrp docenti$2 $1/$2/Studenti/u$20$i chmod 770 $1/$2/Studenti/u$20$i else mkdir $1/$2/Studenti/u$2$i useradd -d $1/$2/Studenti/u$2$i -G classe$2,studenti$2 -s /bin/bash u$2$i ( sleep 1 ; echo "segreta" ; sleep 1 ; echo "segreta" ) | passwd u$2$i chown u$2$i $1/$2/Studenti/u$2$i chgrp docenti$2 $1/$2/Studenti/u$2$i chmod 770 $1/$2/Studenti/u$2$i fi let i+=1 done #----------------------------------# # fine script (...per fortuna) # #----------------------------------# # digitare: # ./creafs home 5bI 10 20 >& errori