94 lines
2.6 KiB
Python
94 lines
2.6 KiB
Python
# -*- 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"
|