Script Creazione Utenti Riccardo Niccolai

Da PtLUG Wiki.

Jump to: navigation, search

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

Torna a

Howto e Tips

Personal tools