Ricostruzione albero ldap
Premessa:
Questa è una possibile soluzione per ricostruire un albero ldap con la seguente struttura:
home -> nome utente (il nome utente è identico a quello della home)
1) Copiare, se non già presenti, le home dal disco-backup sul server
2) lanciare il seguente script:
server:~# cat contenuto_cartella_home.sh
#!/bin/bash
for a in `ls /home/ > /tmp/db_originale_home.txt`; do \
cat sed -e 's/ /\n/'; \
done
echo
echo "creo il file /tmp/db_originale_home.txt che contiene tutti i nomi delle cartelle all'interno della cartella home"
chmod 777 /tmp/db_originale_home.txt
sleep 4
echo
echo "creo una copia di sicurezza del file db_originale_home.txt nella cartella home di root"
cp /tmp/db_originale_home.txt ~
sleep 4
echo
echo "creo la cartella /home/tmp"
mkdir /home/tmp
sleep 2
echo
echo "sposto tutte le home nella cartella /home/tmp"
sleep 3
echo
for e in `less /tmp/db_originale_home.txt`; do \
echo
echo "*******"
echo "sposto la cartella $e in /home/tmp"; \
echo "*******"
echo
sleep 2
mv /home/* /home/tmp/ &> /dev/null; \
done
sleep 2
echo
echo "sono state spostate tutte le home"
echo
echo "NON DIMENTICARE DI CANCELLARE TUTTE LE 'NON-HOME' dal file /tmp/db_originale_home.txt"
sleep 4
Descrizione:
questo script crea un file di testo che contiene l'intero contenuto della cartella home mettendo ogni campo su una singola riga. Per sicurezza il file viene copiato anche nella cartella home di root.
Alla fine viene creata una cartella tmp all'interno della cartella home e tutte le home vengono spostate in /home/tmp/. Le home devono essere spostate in quanto non viene creato alcun utente se la home risulta già presente.
Il file di testo ci permette di creare un file *.csv che in un successivo momento serve per inserire tutti gli utenti in un unico passo.
3) Editare il file /tmp/db_originale_home.txt:
prima di creare il file *.csv bisogna togliere alcuni campi nel file di testo come p. e. samba, lost+found,utenti locali, ... (tutte le non-home)
4) creazione del file *.csv con openoffice-calc:
a) copiare il contenuto del file di testo creato precedentemente nella terza colonna
b) inserire nella prima colonna la seguenti formula: =SINISTRA(C1;1)
c) inserire nella seconda colonna la seguente formula: =DESTRA(C1;Tabella2.A1)
d) inserire nella prima colonna della Tabella2 la seguente formula: =LUNGHEZZA(Tabella1.C1)-1
Descrizione:
purtroppo i primi tre campi (nome,cognome,nome utente) sono obbligatori per poter inserire gli utenti in massa con octofuss
a) prende la prima lettera del contenuto della terza colonna
b) inserisce da destra a sinistra il numero di lettere calcolate nella seconda tabella
c) conta tutte le lettere della terza cella e toglie uno
Otteniamo un file che contiene:
colonna 1 = prima lettera del nome utente (nome)
colonna 2 = tutte le lettere tranne la prima (cognome)
colonna 3 = intero nome utente (identico alla home)
5) File
-> Salva con nome ...
-> Tipo file: Testo CSV (.csv)
-> spuntare la voce "Modifica impostazioni filtro"
-> lasciare invariato le voci che propone di default: Tipo di carattere, Separatore di campo (,), Separatore di testo (")
6) inseriamo gli utenti tramite octofuss
a) octofuss – User Management
b) Mass Creation
c) Advanced
d) Users file (cercare il file *.csv)
e) aggiungere gli utenti ai vari gruppi + confermare
7) lanciare il seguente script: server:~# cat home_utenti.sh
#!/bin/bash
for i in `ls /home/ > /tmp/db_home_da_cancellare.txt`; do \
cat sed -e 's/ /\n/'; \
done
echo
echo "creo il file /tmp/db_home_da_cancellare.txt che contiene tutti i nomi delle cartelle all'interno della cartella home"
chmod 777 /tmp/db_home_da_cancellare.txt
sleep 4
echo
echo "creo una copia di sicurezza del file db_home_da_cancellare.txt nella cartella home di root"
cp /tmp/db_home_da_cancellare.txt ~
sleep 4
echo
echo "CANCELLARE DAL FILE /tmp/db_home_da_cancellare.txt la riga tmp"
sleep 4
8) Editare il file /tmp/db_home_da_cancellare.txt:
prima di ripristinare le home bisogna togliere il campo tmp dal file. Se non viene tolto tutte le home vengono perse
9) lanciare il seguente script:
server:~# cat ripristino_home.sh
#!/bin/bash
echo
echo "cancello tutte le home create precedentemente"
sleep 2
echo
for i in `less /tmp/db_home_da_cancellare.txt`; do \
echo
echo "*******"
echo "cancello la cartella /home/$i"; \
echo "*******"
echo
sleep 2
rm -rf /home/$i
done
sleep 4
echo "sposto tutte le home originali dalla cartella /home/tmp in /home/"
sleep 3
echo
mv /home/tmp/* /home/ && echo "spostate tutte le home ;)"
sleep 2
echo
echo "cambio il proprietario ed il gruppo proprietario della cartella home + i permessi sulla cartella"
sleep 4
for o in `less /tmp/db_home_da_cancellare.txt`; do \
echo
echo "*******"
echo "proprietario cartella /home/$o = $o"
echo "gruppo proprietario cartella /home/$o = Domain Users"
echo "*******"
echo
sleep 3
chown $o.'Domain Users' /home/$o -R
echo
echo "*******"
echo "permessi sulla cartella /home/$o = 700"
echo "*******"
echo
sleep 3
chmod 700 /home/$o
done
sleep 4
echo
echo "copio il file password creato automaticamente in fase di inserimento utenti nella cartella home di root"
cp /tmp/filePassword ~
sleep 3
echo
echo "cancello la cartella /home/tmp"
rm -fr /home/tmp/
sleep 5
echo
echo
echo "RICREATO TUTTI GLI UTENTI CON SUCCESSO :)"
echo
echo
