wiki:db_ldap

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
Last modified 10 years ago Last modified on Jul 31, 2007, 11:40:07 AM