2023-12-14 08:50:46 +01:00
2023-12-14 08:50:46 +01:00
2022-10-12 12:26:13 +02:00
2023-12-14 08:50:46 +01:00
2022-10-12 11:57:29 +02:00
2022-10-12 12:26:13 +02:00

Interagir avec un serveur ldap

Installation

Assurez-vous que le paquet openldap-clients soit installé sur votre système

sudo dnf install -y openldap-clients

Caractéristiques du serveur à interroger:

  • adresse: ldx1.formation.opendoor.fr
  • port: 389
  • dn de connexion: cn=admin,dc=example,dc=fr
  • mot de passe: admin
  • racine: dc=example,dc=fr

Il n'y a pas si longtemps, l'installation par défaut d'openldap acceptait les requètes anonymes en lecture-seule. Ce n'est désormais plus le cas.

Donc on va systèmatiquement utiliser les options suivantes:

ldap{add,search,modify,...} -H ldap://ldx1.formation.opendoor.fr -wadmin -xD cn=admin,dc=example,dc=fr

⚠️ Le mot de passe en clair sur la ligne de commande, ce n'est pas génial. on peut utiliser -W (la commande va nous demander le mot de passe) ou -y ~/.ldap.secret ( ~/.ldap.secret étant un fichier dans lequel on aura écrit notre mot de passe)

Qui suis-je

Faire un ldapwhoami en tant qu'utilisateur admin, puis thomas

ldapwhoami -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr
ldapwhoami -H ldap://ldx1.formation.opendoor.fr  -WxD uid=thomas,ou=users,dc=example,dc=fr

Recherche

Faire une recherche anonyme sur l'ensemble de l'arbre

ldapsearch -H ldap://ldx1.formation.opendoor.fr -x  -b dc=example,dc=fr # Result 32 no such object

Base de recherche

Faire une recherche à partir de la branche ou=users,dc=example,dc=fr.

ldapsearch -H ldap://ldx1.formation.opendoor.fr -wadmin -xD cn=admin,dc=example,dc=fr -b ou=users,dc=example,dc=fr

Étendue

Faire une recherche à partir de la branche user en n'affichant que les enfants de premier niveau

ldapsearch -H ldap://ldx1.formation.opendoor.fr -wadmin -xD cn=admin,dc=example,dc=fr -b ou=users,dc=example,dc=fr -s one

Filtres

Trouvez les entrées ldap dont la classe d'objet est posixAccount

ldapsearch -LLLH ldap://ldx1.formation.opendoor.fr -b dc=example,dc=fr -xwadmin -D cn=admin,dc=example,dc=fr objectclass=posixaccount

Trouvez les entrées ldap dont la classe d'objet est posixAccount et dont le gidNumber est 1238

ldapsearch -LLLH ldap://ldx1.formation.opendoor.fr -b dc=example,dc=fr -xwadmin -D cn=admin,dc=example,dc=fr '(&(gidnumber=1238)(objectclass=posixaccount))'

Préciser les attributs qui nous intéressent

Récupérer uniquement le mail de l'entrée correspondant à la recherche précédente

ldapsearch -LLLH ldap://ldx1.formation.opendoor.fr -b dc=example,dc=fr -xwadmin -D cn=admin,dc=example,dc=fr '(&(gidnumber=1238)(objectclass=posixaccount))' mail

Récupérer uniquement les attributs relatifs à la classe d'objet person

ldapsearch -LLLH ldap://ldx1.formation.opendoor.fr -b dc=example,dc=fr -xwadmin -D cn=admin,dc=example,dc=fr '(&(gidnumber=1238)(objectclass=posixaccount))' @person

Notre utilisateur est de la classe inetOrgPerson qui dérive de Person

Ajout

En vous aidant de https://www.zytrax.com/books/ldap/ape/nis.html#posixgroup, Identifiez et mettez au point les attributs nécessaires à la création du groupe suivant: Créer un groupe avec les caractéristiques suivantes:

  • branche: ou=groupes,dc=example,dc=fr
  • nom: utilisateurs
  • identifiant numérique: 1239
  • membre: thomas

Voir fichier group.ldif:

# Création du groupe _utilisateurs_, gid 1239 et membre "thomas"
dn: cn=utilisateurs,ou=groupes,dc=example,dc=fr
objectclass: posixGroup
gidnumber: 1239
memberuid: thomas
ldapadd -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  -f groupe.ldif

Modification d'un mot de passe

ldappasswd -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  uid=thomas,ou=users,dc=example,dc=fr # génération d'un mot de passe aléatoire

ldappasswd -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  uid=thomas,ou=users,dc=example,dc=fr -s 123Soleil # ⚠️ mot de passe sur ligne de commande

ldappasswd -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  uid=thomas,ou=users,dc=example,dc=fr -S # définition du mot de passe par dialogue

Modification

Modifiez le shell de l'utilisateur thomas à la valeur "/bin/fish"

Rajoutez lui l'attribut "description"

Vérifiez

Voir le fichier modif_user.ldif:

dn: uid=thomas,ou=Users,dc=example,dc=fr
changetype: modify
add: description
description: this is my account
-
replace: loginShell
loginShell: /bin/fish
ldapmodify -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr   -f modif_user.ldif

Déplacement / copie

Renommez le groupe utilisateurs en utilisateur·trice·s

Constatez le résultat.

ldapmodrdn -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  -r cn=utilisateurs,ou=groupes,dc=example,dc=fr cn=utilisateur·trice·s

echo 'Y249dXRpbGlzYXRldXLCt3RyaWNlwrdzLG91PUdyb3VwcyxkYz1leGFtcGxlLGRjPWNvbQ==' | base64 -d
cn=utilisateur·trice·s,ou=groupes,dc=example,dc=fr

Suppression

Recrééz le groupe "utilisateurs",

ldapadd -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr  -f groupe.ldif

Supprimez le groupe "utilisateur·trice·s"

ldapdelete -H ldap://ldx1.formation.opendoor.fr  -xwadmin -D cn=admin,dc=example,dc=fr   cn=utilisateur·trice·s,ou=groupes,dc=example,dc=fr
Description
No description provided
Readme 46 KiB