# Migration NIS/Samba vers LDAP/Samba

## Description

Ce script vise à faciliter la migration du couple NIS/Samba vers LDAP/Samba.
Il utilise les smbldap-tools pour la création des nouveaux comptes. Par
défaut, il lit les fichiers suivants :
* passwd : contient les comptes à migrer, au format Unix classique, incluant
les hashs des mots de passe. Il peut être obtenu sur une machine client NIS en
root avec la commande 'ypcat passwd > passwd'.
* smbpasswd : contient les hashs Samba des utilisateurs à migrer. Il peut
être obtenu depuis le serveur Samba avec la commande 'pdbedit -i  tdbsam -e 
smbpasswd'.
* group : contient les groupes à migrer, au format Unix classique. Il peut
être obtenu sur une machine cliente NIS en root avec la commande 'ypcat
group > group'.

Le script créé trois fichiers :
* create_groups : contient une liste de commandes smbldap-groupadd qui recréé
les groupes NIS avec leurs anciens noms et gid.
* create_users : contient une liste de commandes smbldap-useradd qui recréé
les utilisateurs NIS avec leurs anciennes données.
* set_passwords.ldif : fichier d'instructions LDAP qui définit les mots de
passe des utilisateurs. Il peut être utilisé avec ldapmodify.

Plusieurs constantes sont définies au début du script. Elles *doivent* être
modifiées pour votre configuration.

## Utilisation

### Préparation
Récupérez les fichiers passwd, smbpasswd et group en utilisant par exemple
les commandes décrites plus haut. *Faites du ménage* ! Certains utilisateurs
ont probablement des données erronées ou pourraient être supprimés. Il en
va de même pour les groupes. La migration est une bonne occasion pour un
nettoyage. Ensuite, *chassez les accents* ! À l'heure de l'écriture de ces
lignes, smbldap-useradd semble ne pas gérer les caractères non-ascii, faisant
échouer la création d'utilisateurs dont le nom contient des caractères
accentués, voire des espaces insécables (si si, ça peut arriver).
Exécutez ensuite 'python migrate.py'. Trois fichiers sont créés.

### Insertion
Les fichiers 'create_users' et 'create_groups' contiennent des listes de
commandes. Elles peuvent être exécutées avec le script 'safe_run.sh', qui se
mettra en pause en cas d'erreur. Il appartient à vous de traiter ces erreurs,
en modifiant le fichier 'passwd' par exemple. Une fois les comptes créés,
on redéfinit leur mots de passe en insérant le fichier 'set_passwords.ldif'
à la base LDAP. On peut utiliser une commande de ce type :
ldapmodify -x -H ldap://127.0.0.1 -D 'cn=root,dc=arda' -W -f set_passwords.ldif

TODO : Remettre les membres dans leurs groupes.
