Temps de lecture approximatif : 3 minutes
Scripts créés en Python, Perl, Awk, Expect
Sommaire
Import-export ldap (scripts Perl et Awk)
Fonctionnalité:
- A partir d’un backup (au format LDIF) d’une base de donnée LDAP, exporter les principales données sous forme d’un fichier CSV.
- A partir d’un fichier CSV, exporter les données principales au format LDIF.
Le script :
Usage:
++++++++++++++++++ +++++ README +++++ ++++++++++++++++++ Prérequis ========= 1. Installer les paquets "awk"; "perl". 2. Adapter dans le script "csv2ldif" les paramètres permettant la connexion à votre base LDAP: <code> ... ... # Set variables refer to your domain # <-------------------------------------------------------------------------------> # $sambaPwdLastSet = '1356087842'; #--> Set sambaPwdLastSet (you can change the password # for a ldap user's and recover the value !) $suffix = 'dc=monentreprise,dc=fr'; $o = 'MONENTREPRISE'; $dc = 'monentreprise'; $ldap_admin = 'admin'; $ldap_admin_pwd = 'e0NSWVBUfTFIWG5IazUzYWRtelU='; #--> You must insert ldap admin's password (encrypted format used by your LDAP) $ou_user = 'People'; # Example: password in MD5-CRYPT $ou_group = 'Groups'; $ou_computers = 'Computers'; # # <--------------------------------------------------------------------------------> ... ... </code> Pour générer un csv depuis un ldif ================================== /bin/awk -F ': ' -f ./ldap-scripts/ldif2csv.awk < [your last ldif backup].ldif > export-result_from_ldif.csv Pour générer un ldif depuis le csv ================================== ATTENTION, Lire l'aide du script avant ! ./ldaps-cripts/csv2ldif.pl --help or ./ldap-scripts/csv2ldif.pl -h Exemple de commande: Générer un nouveau fichier LDIF pour une nouvelle installation de LDAP: cat export-result_from_ldif.csv | sed -e '/^[ ]*#/d' -e '/^$/d' | tr '\\' '#' | /usr/bin/perl ./ldap-scripts/csv2ldif.pl --all > import-result_from_csv.ldif
Script d’ajout d’utilisateurs dans LDAP, Samba et Cyrus (Scripts Python et Perl)
Fonctionnalité:
En fonction d’un fichier de type CSV préalablement rempli:
- Connexion SSH au serveur LDAP et ajout des utilisateurs dans LDAP. Création de leur mot de passe Unix et Samba et ajout des utilisateurs dans leur(s) groupe(s) Samba respectif(s).
- Connexion SSH au serveur Samba et pour chaque utilisateur création de son dossier « home » et de leur script netlogon à l’emplacement souhaité (paramètre à définir directement dans le script).
- Connexion SSH au serveur Cyrus et création du compte mail des utilisateurs dans Cyrus.
Le script:
add_ldap_samba_cyrus_users-scripts
Usage:
++++++++++++++++++ +++++ README +++++ ++++++++++++++++++ Prérequis ========= 1. Installer le script "add-imap-users" dans "/usr/local/bin" du serveur de mail 2. Modifier celui-ci pour adapter les variables: <code> ... ... $server="localhost"; $admin="cyrus"; $pw=`cat /etc/cyrus.secret`; ... ... </code> 3. Adapter les lignes ci-dessous DIRECTEMENT dans le script "add_ldap_samba_cyrus_users" <code> ... ... # Default variables fusername = "/root/username.csv" filelog = "/var/log/user_register.log" debug = False # # ldap_host = "<mon serveur ldap>" file_host = "<mon serveur samba>" mail_host = "<mon serveur mail>" # # TO ADAPT to your needs # bind_dn = "<le rootdn de mon serveur ldap>" bind_passwd = "<le mot de passe de mon serveur ldap>" base_dn = "<le suffix de mon ldap serveur>" gid_number = "2000" loginshell = "/bin/false" sambasid = "<le samba SID de mon serveur>" ... ... </code> 4. Modifier le fichier "username.csv" (comme décrit à l'intérieur de celui-ci) afin d'ajouter les utilisateurs et les autres paramètres. 5. [Optionnel]: Afin d'éviter de taper le mot de passe d'accès SSH aux différents serveurs (Cyrus, Samba) vous pouvez paramétrer l'échange de clés SSH avec ces serveurs (voir l'utilisation de la commande "ssh-copy-id" (vous pouvez effectuer une recherche sur www.opours.net)). USAGE ====== Exécuter le script. Celui-ci utilisera le fichier "username.csv" pour créer les utilisateurs avec les informations qui leur correspondent.
“La connaissance a plus de valeur et s’accroît rapidement lorsqu’elle est partagée et accessible librement…”
Ce document est publié sous licence Creative Commons
Attribution, Partage à l’identique, Contexte non commercial 3.0 : http://creativecommons.org/licenses/by-nc/3.0/