Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slapd [Le 19/12/2017, 13:30] L'Africain Petit nettoyage |
slapd [Le 11/09/2022, 10:37] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== Un serveur d'annuaire avec OpenLDAP ====== | ====== Un serveur d'annuaire avec OpenLDAP ====== | ||
- | Ce document est la traduction du HowTo présenté à l'adresse https://wiki.ubuntu.com/OpenLDAPServer. | + | Ce document est la traduction du HowTo présenté à l'adresse https://wiki.ubuntu.com/OpenLDAPServer. |
LDAP signifie Lightweight Directory Access Protocol, c'est une version simplifiée du protocole X500. Vous pourrez trouver une présentation détaillée sur [[wpfr>LDAP|Wikipédia]]. | LDAP signifie Lightweight Directory Access Protocol, c'est une version simplifiée du protocole X500. Vous pourrez trouver une présentation détaillée sur [[wpfr>LDAP|Wikipédia]]. | ||
- | Pour expliquer rapidement, toutes les informations sont stockées dans un arbre. Vous devez déterminer l'arborescence des annuaires ou, autrement dit, des informations de l'arbre (Directory Information Tree). | + | Pour expliquer rapidement, toutes les informations sont stockées dans un arbre. Vous devez déterminer l'arborescence des annuaires ou, autrement dit, des informations de l'arbre (Directory Information Tree). |
Nous allons commencer ici avec un exemple simple contenant seulement 2 nœuds en plus de la racine : | Nous allons commencer ici avec un exemple simple contenant seulement 2 nœuds en plus de la racine : | ||
* Le nœud "People" , où seront stockés vos utilisateurs, | * Le nœud "People" , où seront stockés vos utilisateurs, | ||
Ligne 127: | Ligne 127: | ||
homePhone: +33 (0)5 xx xx xx xx | homePhone: +33 (0)5 xx xx xx xx | ||
title: System Administrator | title: System Administrator | ||
- | postalAddress: | + | postalAddress: |
initials: LP | initials: LP | ||
Ligne 140: | Ligne 140: | ||
Maintenant ajoutez vos entrées à LDAP : | Maintenant ajoutez vos entrées à LDAP : | ||
- | * Arrêtez le daemon : | + | * Arrêtez le daemon : |
<code> | <code> | ||
sudo /etc/init.d/slapd stop | sudo /etc/init.d/slapd stop | ||
Ligne 154: | Ligne 154: | ||
sudo slapadd -l ~/init.ldif | sudo slapadd -l ~/init.ldif | ||
</code> | </code> | ||
- | <note tip>Si vous rencontrez le message type : | + | <note tip>Si vous rencontrez le message type : |
<code> | <code> | ||
Entry (cn=example,ou=groups,dc=example,dc=com), attribute 'displayName' not allowed | Entry (cn=example,ou=groups,dc=example,dc=com), attribute 'displayName' not allowed | ||
slapadd: dn="cn=example,ou=groups,dc=example,dc=com" (line=46): (65) attribute 'displayName' not allowed | slapadd: dn="cn=example,ou=groups,dc=example,dc=com" (line=46): (65) attribute 'displayName' not allowed | ||
</code> | </code> | ||
- | Il faut commenter la ligne 46 comme ceci : | + | Il faut commenter la ligne 46 comme ceci : |
<code> | <code> | ||
#displayName: Example group | #displayName: Example group | ||
Ligne 191: | Ligne 191: | ||
Une rapide explication : | Une rapide explication : | ||
* -x désactive l'authentification SASL | * -x désactive l'authentification SASL | ||
- | * -LLL empêche l'affichage des informations LDIF | + | * -LLL empêche l'affichage des informations LDIF |
* -b indique la branche utilisée | * -b indique la branche utilisée | ||
NE PAS OUBLIER d'ajouter le user qui doit administrer le service ldap au group openldap à créer lors de l'installation du paquet ou bien de donner les bons droits sur les fichiers /etc/ldap/ldap.conf et /var/lib/ldap/* | NE PAS OUBLIER d'ajouter le user qui doit administrer le service ldap au group openldap à créer lors de l'installation du paquet ou bien de donner les bons droits sur les fichiers /etc/ldap/ldap.conf et /var/lib/ldap/* | ||
+ | |||
+ | ==== Convertir un csv en ldif ==== | ||
+ | Ci dessous un script bash convertissant un csv en ldif. Il faut évidemment le personnaliser selon vos besoins. | ||
+ | Il lui manque de: supprimer les doublons, les valeurs nulles, les têtes de colonne ainsi que les espaces et caractères spéciaux dans l'uid. | ||
+ | |||
+ | <code> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Le script et le fichier source doivent être dans le home. | ||
+ | # Le script ne supprime ni les doublons, ni les valeurs nulles, ni les têtes de colonne. | ||
+ | # Il faudrait aussi supprimer les espaces et les caractères spéciaux dans les uid=$nom$prenom | ||
+ | |||
+ | source=source.csv # Le fichier source | ||
+ | cible=cible.ldif # Le fichier cible | ||
+ | |||
+ | > $cible # Nettoyage du fichier cible. | ||
+ | |||
+ | while read line # On lit le fichier, et pour chaque ligne... | ||
+ | do | ||
+ | nom=$(echo $line | cut -d ";" -f2) # On entre dans la variable $nom la deuxième colonne (-f2). | ||
+ | prenom=$(echo $line | cut -d ";" -f3) # Remarquez le séparateur qui est le ";". On pourrait changer. | ||
+ | rue=$(echo $line | cut -d ";" -f4) | ||
+ | cp=$(echo $line | cut -d ";" -f5) | ||
+ | ville=$(echo $line | cut -d ";" -f6) | ||
+ | tel=$(echo $line | cut -d ";" -f7) | ||
+ | mobile=$(echo $line | cut -d ";" -f8) | ||
+ | courriel=$(echo $line | cut -d ";" -f9) | ||
+ | # A partir de la ligne suivante exportation par un echo. | ||
+ | # C'est ici que vous pouvez modifier le contenu du ldif. | ||
+ | # Il faudrait y ajouter une condition pour ne pas afficher les champs vides. | ||
+ | echo "dn: uid=$nom$prenom,ou=fideles,dc=example,dc=com | ||
+ | objectClass: inetOrgPerson | ||
+ | objectClass: organizationalPerson | ||
+ | objectClass: posixAccount | ||
+ | objectClass: shadowAccount | ||
+ | objectClass: person | ||
+ | objectClass: top | ||
+ | cn: $nom $prenom | ||
+ | gidNumber: 100 | ||
+ | givenName: $prenom | ||
+ | homeDirectory: hd | ||
+ | homePhone: $tel | ||
+ | mobile: $mobile | ||
+ | mail: $courriel | ||
+ | street: $rue | ||
+ | postalCode: $cp $ville | ||
+ | sn: $nom | ||
+ | uid: $nom$prenom | ||
+ | uidNumber: 100 | ||
+ | |||
+ | " >> $cible # Écriture dans le fichier cible. | ||
+ | done < $source # Lecture de la source. | ||
+ | |||
+ | </code> | ||
===== Utiliser votre serveur LDAP ===== | ===== Utiliser votre serveur LDAP ===== | ||
Ligne 223: | Ligne 277: | ||
== Problème : Memory Limit low == | == Problème : Memory Limit low == | ||
- | Si lorsque vous allez sur l'interface web de phpldapadmin, vous avez cette erreur : | + | Si lorsque vous allez sur l'interface web de phpldapadmin, vous avez cette erreur : |
Memory Limit low. | Memory Limit low. | ||
Ligne 266: | Ligne 320: | ||
Avec OpenLDAP 2.2 (sur Breezy et Dapper), la réplication est basée sur une communication maître-esclave. | Avec OpenLDAP 2.2 (sur Breezy et Dapper), la réplication est basée sur une communication maître-esclave. | ||
- | __**ATTENTION **__ | + | __**ATTENTION **__ |
Vous devez vous rappeler que les modifications devraient toujours être faites sur le maître ! Si vous modifiez un esclave, les modifications seront perdues dès la synchronisation suivante :/ | Vous devez vous rappeler que les modifications devraient toujours être faites sur le maître ! Si vous modifiez un esclave, les modifications seront perdues dès la synchronisation suivante :/ | ||
Ligne 277: | Ligne 331: | ||
<note important>Note d'un internaute : Comment faire pour les versions ou le fichier slapd.conf n'existe plus, comme c'est dit plus haut??</note> | <note important>Note d'un internaute : Comment faire pour les versions ou le fichier slapd.conf n'existe plus, comme c'est dit plus haut??</note> | ||
+ | |||
+ | <note important>En réponse a l'internaute: Avec les commandes suivantes on peut recréer le fichier de conf</note> | ||
+ | <code> | ||
+ | zcat /usr/share/doc/slapd/examples/slapd.conf.gz > /etc/ldap/slapd.conf | ||
+ | sed -i "s/SLAPD_CONF=/SLAPD_CONF=\/etc\/ldap\/slapd.conf/g" /etc/default/slapd | ||
+ | sed -i "s/dbconfig/#dbconfig/g" /etc/ldap/slapd.conf | ||
+ | systemctl daemon-reload | ||
+ | systemctl restart slapd.service | ||
+ | </code> | ||
<code> | <code> | ||
Ligne 305: | Ligne 368: | ||
* [[https://wiki.ubuntu.com/OpenLDAPServer|La version Anglaise]] | * [[https://wiki.ubuntu.com/OpenLDAPServer|La version Anglaise]] | ||
* [[https://help.ubuntu.com/8.10/serverguide/C/openldap-server.html|La version Anglaise mis a jour pour 8.10]] | * [[https://help.ubuntu.com/8.10/serverguide/C/openldap-server.html|La version Anglaise mis a jour pour 8.10]] | ||
- | * [[http://www.openldap.org/|OpenLDAP.org]] | + | * [[https://www.openldap.org/|OpenLDAP.org]] |
* [[http://www.tldp.org/HOWTO/html_single/LDAP-HOWTO/|LDAP HOWTO]] | * [[http://www.tldp.org/HOWTO/html_single/LDAP-HOWTO/|LDAP HOWTO]] | ||
* [[http://luma.sourceforge.net/|Un GUI pour LDAP]] (Disponible dans les dépots) | * [[http://luma.sourceforge.net/|Un GUI pour LDAP]] (Disponible dans les dépots) |