# -*- mode: python; coding: utf-8 -*- include("mode/space") include("secrets") include("ip") header(""" Fichier de configuration de libpam-ldap. Pour des informations détaillées voir pam_ldap.conf(5) """) @# +----------------------------------------------------+ @# | Configuration de la communiquation avec le serveur | @# +----------------------------------------------------+ @# The distinguished name of the search base. %base "dc=crans,dc=org" if has("db-server"): # Le serveur principale ainsi que les réplica se connectent par # socket unix %uri "ldapi://%2fvar%2frun%2fslapd%2fldapi/" else: # Les autres c'est par le réseau %uri "ldap://%s/" % admipof("ldap") @# The LDAP version to use (defaults to 3 @# if supported by client library) %ldap_version 3 if has("db-main"): @# The distinguished name to bind to the server with @# if the effective user ID is root. Password is @# stored in /etc/ldap.secret (mode 600) %rootbinddn secrets.ldap_auth_dn else: @# The distinguished name to bind to the server with. @# Optional: default is to bind anonymously. %binddn secrets.ldap_readonly_auth_dn @# The credentials to bind with. @# Optional: default is no credential. %bindpw secrets.ldap_readonly_password @# The port. @# Optional: default is 389. @#port 389 @# The search scope. @#scope sub %scope "one" @#scope base if not has("db-main"): @# Search timelimit %timelimit 5 @# Bind timelimit %bind_timelimit 5 @# Do not hash the password at all; presume @# the directory server will do it, if @# necessary. This is the default. %pam_password "exop" @# +------------------+ @# | Bases de données | @# +------------------+ # On n'utilise ldap pour résoudre les bases de données # passwd, group et shadow droits = [] if has("users"): # Sur le serveur des adhérents, on veut que tout # les adhérents soit reconnus comme utilisateurs locaux %nss_base_passwd "ou=data,dc=crans,dc=org?one" else: # Sur les autres serveurs on filtre pour que seuls # les nounous et les apprentis le soit. # 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.append("nss_base_passwd ou=data,dc=crans,dc=org?one?|(droits=Nounou)(droits=Apprenti)") if has("imprimeurs"): droits.append("(droits=Imprimeur)") if has("bureau"): droits.append("(droits=Bureau)") print ''.join(droits) %nss_base_shadow "ou=data,dc=crans,dc=org?one" %nss_base_group "ou=Group,dc=crans,dc=org?one"