This commit is contained in:
2022-11-28 08:21:07 +01:00
parent b196a4c5d1
commit 30cf5d421b

View File

@@ -12,23 +12,23 @@ sudo dnf install -y openldap-clients
* adresse: localhost * adresse: localhost
* port: 389 * port: 389
* dn de connexion: cn=admin,dc=example,dc=com * dn de connexion: cn=admin,dc=example,dc=fr
* mot de passe: admin * mot de passe: admin
* racine: dc=example,dc=com * racine: dc=example,dc=fr
Donc on va systèmatiquement utiliser les options suivantes: Donc on va systèmatiquement utiliser les options suivantes:
ldap{add,search,modify,...} -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=com ldap{add,search,modify,...} -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=fr
ALe 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) ALe 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 ## Qui suis-je
Faire un _ldapwhoami_ en tant qu'utilisateur admin, puis tom Faire un _ldapwhoami_ en tant qu'utilisateur admin, puis thomas
```bash ```bash
ldapwhoami -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com ldapwhoami -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr
ldapwhoami -H ldap://localhost -WxD uid=tom,ou=users,dc=example,dc=com ldapwhoami -H ldap://localhost -WxD uid=thomas,ou=users,dc=example,dc=fr
``` ```
## Recherche ## Recherche
@@ -36,15 +36,15 @@ ldapwhoami -H ldap://localhost -WxD uid=tom,ou=users,dc=example,dc=com
Faire une recherche anonyme sur l'ensemble de l'arbre Faire une recherche anonyme sur l'ensemble de l'arbre
```bash ```bash
ldapsearch -H ldap:/// -x -b dc=example,dc=com ldapsearch -H ldap:/// -x -b dc=example,dc=fr
``` ```
### Base de recherche ### Base de recherche
Faire une recherche à partir de la branche ou=users,dc=example,dc=com. Faire une recherche à partir de la branche ou=users,dc=example,dc=fr.
```bash ```bash
ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=com -b ou=users,dc=example,dc=com ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=fr -b ou=users,dc=example,dc=fr
``` ```
### Étendue ### Étendue
@@ -52,7 +52,7 @@ ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=com -b ou=users,dc=exa
Faire une recherche à partir de la branche user en n'affichant que les enfants de premier niveau Faire une recherche à partir de la branche user en n'affichant que les enfants de premier niveau
```bash ```bash
ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=com -b ou=users,dc=example,dc=com -s one ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=fr -b ou=users,dc=example,dc=fr -s one
``` ```
### Filtres ### Filtres
@@ -60,13 +60,13 @@ ldapsearch -H ldap:/// -wadmin -xD cn=admin,dc=example,dc=com -b ou=users,dc=exa
Trouvez les entrées ldap dont la classe d'objet est _posixAccount_ Trouvez les entrées ldap dont la classe d'objet est _posixAccount_
```bash ```bash
ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=example,dc=com objectclass=posixaccount ldapsearch -LLLH ldap://localhost -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_ Trouvez les entrées ldap dont la classe d'objet est _posixAccount_ *et* dont le gidNumber est _1238_
```bash ```bash
ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=example,dc=com '(&(gidnumber=1238)(objectclass=posixaccount))' ldapsearch -LLLH ldap://localhost -b dc=example,dc=fr -xwadmin -D cn=admin,dc=example,dc=fr '(&(gidnumber=1238)(objectclass=posixaccount))'
``` ```
@@ -75,13 +75,13 @@ ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=e
Récupérer uniquement le _mail_ de l'entrée correspondant à la recherche précédente Récupérer uniquement le _mail_ de l'entrée correspondant à la recherche précédente
```bash ```bash
ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=example,dc=com '(&(gidnumber=1238)(objectclass=posixaccount))' mail ldapsearch -LLLH ldap://localhost -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_ Récupérer uniquement les attributs relatifs à la classe d'objet _person_
```bash ```bash
ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=example,dc=com '(&(gidnumber=1238)(objectclass=posixaccount))' @person ldapsearch -LLLH ldap://localhost -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_ ❗ Notre utilisateur est de la classe _inetOrgPerson_ qui dérive de _Person_
@@ -90,40 +90,40 @@ ldapsearch -LLLH ldap://localhost -b dc=example,dc=com -xwadmin -D cn=admin,dc=e
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: 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: Créer un groupe avec les caractéristiques suivantes:
* branche: ou=groupes,dc=example,dc=com * branche: ou=groupes,dc=example,dc=fr
* nom: utilisateurs * nom: utilisateurs
* identifiant numérique: 1239 * identifiant numérique: 1239
* membre: tom * membre: thomas
Voir fichier _group.ldif_: Voir fichier _group.ldif_:
```ldif ```ldif
# Création du groupe _utilisateurs_, gid 1239 et membre "tom" # Création du groupe _utilisateurs_, gid 1239 et membre "thomas"
dn: cn=utilisateurs,ou=groups,dc=example,dc=com dn: cn=utilisateurs,ou=groups,dc=example,dc=fr
objectclass: posixGroup objectclass: posixGroup
gidnumber: 1239 gidnumber: 1239
memberuid: tom memberuid: thomas
``` ```
```bash ```bash
ldapadd -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com -f groupe.ldif ldapadd -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr -f groupe.ldif
``` ```
## Modification d'un mot de passe ## Modification d'un mot de passe
```bash ```bash
ldappasswd -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com uid=tom,ou=users,dc=example,dc=com # génération d'un mot de passe aléatoire ldappasswd -H ldap://localhost -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://localhost -xwadmin -D cn=admin,dc=example,dc=com uid=tom,ou=users,dc=example,dc=com -s 123Soleil # ⚠️ mot de passe sur ligne de commande ldappasswd -H ldap://localhost -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://localhost -xwadmin -D cn=admin,dc=example,dc=com uid=tom,ou=users,dc=example,dc=com -S # définition du mot de passe par dialogue ldappasswd -H ldap://localhost -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 ## Modification
Modifiez le shell de l'utilisateur tom à la valeur "/bin/fish" Modifiez le shell de l'utilisateur thomas à la valeur "/bin/fish"
Rajoutez lui l'attribut "description" Rajoutez lui l'attribut "description"
@@ -133,7 +133,7 @@ Vérifiez
Voir le fichier _modif_user.ldif_: Voir le fichier _modif_user.ldif_:
```ldif ```ldif
dn: uid=tom,ou=Users,dc=example,dc=com dn: uid=thomas,ou=Users,dc=example,dc=fr
changetype: modify changetype: modify
add: description add: description
description: this is my account description: this is my account
@@ -144,7 +144,7 @@ loginShell: /bin/fish
```bash ```bash
ldapmodify -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com -f modif_user.ldif ldapmodify -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr -f modif_user.ldif
``` ```
## Déplacement / copie ## Déplacement / copie
@@ -154,10 +154,10 @@ Renommez le groupe utilisateurs en utilisateur·trice·s
Constatez le résultat. Constatez le résultat.
```bash ```bash
ldapmodrdn -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com -r cn=utilisateurs,ou=groups,dc=example,dc=com cn=utilisateur·trice·s ldapmodrdn -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr -r cn=utilisateurs,ou=groups,dc=example,dc=fr cn=utilisateur·trice·s
echo 'Y249dXRpbGlzYXRldXLCt3RyaWNlwrdzLG91PUdyb3VwcyxkYz1leGFtcGxlLGRjPWNvbQ==' | base64 -d echo 'Y249dXRpbGlzYXRldXLCt3RyaWNlwrdzLG91PUdyb3VwcyxkYz1leGFtcGxlLGRjPWNvbQ==' | base64 -d
cn=utilisateur·trice·s,ou=Groups,dc=example,dc=com cn=utilisateur·trice·s,ou=Groups,dc=example,dc=fr
``` ```
## Suppression ## Suppression
@@ -165,11 +165,11 @@ cn=utilisateur·trice·s,ou=Groups,dc=example,dc=com
Recrééz le groupe "utilisateurs", Recrééz le groupe "utilisateurs",
```bash ```bash
ldapadd -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com -f groupe.ldif ldapadd -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr -f groupe.ldif
``` ```
Supprimez le groupe "utilisateur·trice·s" Supprimez le groupe "utilisateur·trice·s"
```bash ```bash
ldapdelete -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=com cn=utilisateur·trice·s,ou=Groups,dc=example,dc=com ldapdelete -H ldap://localhost -xwadmin -D cn=admin,dc=example,dc=fr cn=utilisateur·trice·s,ou=Groups,dc=example,dc=fr
``` ```