80 lines
2.1 KiB
Python
80 lines
2.1 KiB
Python
# -*- mode: python; coding: utf-8 -*-
|
|
|
|
include("mode/space")
|
|
include("secrets")
|
|
include("ip")
|
|
|
|
header("""
|
|
Fichier de configuration pour libnss-ldapd.
|
|
|
|
Pour des informations détaillées voir nss-ldapd.conf(5)
|
|
""")
|
|
|
|
info["perms"] = 0600
|
|
|
|
@# +---------------------------------------------------+
|
|
@# | Configuration du démon nslcd |
|
|
@# +---------------------------------------------------+
|
|
@
|
|
@# Utilisateur sous lequel faire tourner le démon
|
|
@uid nslcd
|
|
@gid nslcd
|
|
@
|
|
|
|
@# +---------------------------------------------------+
|
|
@# | Configuration de la communication avec le serveur |
|
|
@# +---------------------------------------------------+
|
|
@
|
|
if has("db-server"):
|
|
@# Socket unix du serveur
|
|
%uri "ldapi://%2fvar%2frun%2fslapd%2fldapi/"
|
|
else:
|
|
@# Addresse du serveur
|
|
%uri "ldap://%s/" % admipof("ldap")
|
|
@
|
|
@# Le distinguished name de la base de recherche
|
|
%base "dc=crans,dc=org"
|
|
@
|
|
@# Le DN avec lequel se connecter à la base.
|
|
%binddn secrets.ldap_readonly_auth_dn
|
|
@
|
|
@# Et le mot de passe associé
|
|
%bindpw secrets.ldap_readonly_password
|
|
@
|
|
@# La version de LDAP à utiliser
|
|
%ldap_version 3
|
|
@
|
|
@# Temps d'attente d'une réponse du serveur LDAP
|
|
%timelimit 5
|
|
@
|
|
@# Temps d'attente à la connexion au serveur LDAP
|
|
%bind_timelimit 5
|
|
@
|
|
@# +------------------+
|
|
@# | Bases de données |
|
|
@# +------------------+
|
|
@
|
|
# On utilise ldap pour résoudre les bases de données
|
|
# passwd, group et shadow
|
|
@# Bases de recherche
|
|
@base passwd ou=data,dc=crans,dc=org
|
|
@base shadow ou=data,dc=crans,dc=org
|
|
@base group ou=Group,dc=crans,dc=org
|
|
|
|
if not has('users'):
|
|
# Sur les serveurs autres que zamok, on filtre pour que seuls
|
|
# les nounous et les apprentis soient vus.
|
|
# Il est important de mettre ce filtrage au niveau de
|
|
# libnss-ldap et pam-ldap car ssh utilise pam pour les
|
|
# mots de passe mais pour l'authentification par clés
|
|
# il n'utilise que nss
|
|
droits = ['(|']
|
|
droits.append("(droits=Nounou)(droits=Apprenti)")
|
|
if has("imprimeurs"):
|
|
droits.append("(droits=Imprimeur)")
|
|
if has("bureau"):
|
|
droits.append("(droits=Bureau)")
|
|
droits.append(')')
|
|
@
|
|
@# Filtre de recherche
|
|
print "filter passwd", ''.join(droits)
|