# La base frontend contiens toutes les bases. Donc les ACL s'appliquant # à celle-ci, s'applique à toutes les autres. dn: olcDatabase={-1}frontend,cn=config changetype: modify replace: olcAccess # Ici nous validons l'accès si l'on se connecte en external sur ldapi # et que l'utilisateur est root. C'est ce qui fait que l'on peut tout # changer avec `sudo ldapmodify -Y EXTERNAL -H ldapi:///` par exemple. # On ajoute ici le droit de modifier la configuration aux personnes # faisant partie du groupe cn=sudo,ou=Groups olcAccess: to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by group.exact=cn=sudo,ou=Groups,dc=anarcha,dc=pink manage by * break # L'objet racine est lisible par tout le monde olcAccess: to dn.exact="" by * read # Tout le monde peut lire le contenu de Subschema qui décrit la syntaxe # utilisée par LDAP olcAccess: {3}to dn.base="cn=Subschema" by * read # Les droits d'accès ici concerne la configuration de LDAP dn: olcDatabase={0}config,cn=config changetype: modify replace: olcAccess # Seul root - en utilisant -Y EXTERNAL -H ldapi:/// - ainsi que les personnes # dans le groupe cn=sudo,ou=Groups peut gérer toute # la configuration. olcAccess: to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by group.exact=cn=sudo,ou=Groups,dc=anarcha,dc=pink manage by * break # Ceci est la première base de donnée, et correspond donc au cn: dc=anarcha,dc=pink dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcAccess # Les sudo peuvent modifier et gérer l'ensemble des groupes faisant parti de l'OU # System. olcAccess: to attrs=userPassword dn.children="ou=System,dc=anarcha,dc=pink" by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by group.exact=cn=sudo,ou=Groups,dc=anarcha,dc=pink manage # Seul l'utilisateur peut écrire son mot de passe # Tout le monde peut essayer de s'en servir dans un but d'identification (ce n'est # pas un accès en lecture, mais un accès par les mécanismes d'authentification) # et le reste du monde ne peut rien faire. olcAccess: to attrs=userPassword by self write by anonymous auth by * none # Même chose, mais pour un attribut nęcessaire au fonctionnement de Shadow olcAccess: to attrs=shadowLastChange by self write by * read # La clef SSH e peut être écrite que par l'owner. Tout le monde peut lire. olcAccess: to attrs=sshPublicKey by self write by * read # Tout le monde peut lire notre arbre. C'est pour ça que ldapsearch fonctionne. # Nobody ne peut rien faire # Et le groupe sudo a tous les pouvoirs olcAccess: to * by dn.exact=uid=nobody,ou=System,dc=anarcha,dc=pink none by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by group.exact=cn=sudo,ou=Groups,dc=anarcha,dc=pink manage by anonymous read by * read