Bonjour,
Je tente un login à partir d'un compte ldap nommé test2 mais ça ne passe pas ...
J'ai configuré openldap sur FC4 et en guise de teste j'ai créé une ou=people et ou=group. A l'intérieur de people j'ai ajouté un compte test2 (posixAccount).
Via phpldapadmin je suis capable de me connecter en Manager et en utilisateur test2.
Lorsque je tente un login via le compte test2 et le bon mot de passe j'ai dans /var/log/messages :
Sep 21 09:05:46 buggy login(pam_unix)[2906]: check pass; user unknown
Sep 21 09:05:46 buggy login(pam_unix)[2906]: authentication failure; logname= uid=0 euid=0 tty=tty3 ruser= rhost=
Sep 21 09:05:47 buggy login(pam_unix)[2906]: could not identify user (from getpwnam(test2))
Sep 21 09:05:47 buggy login[2906]: User not known to the underlying authentication module
Le même test avec un mauvais mot de passe donne :
Sep 21 09:08:14 buggy login(pam_unix)[3364]: check pass; user unknown
Sep 21 09:08:14 buggy login(pam_unix)[3364]: authentication failure; logname= uid=0 euid=0 tty=tty3 ruser= rhost=
Sep 21 09:08:14 buggy login[3364]: pam_ldap: error trying to bind as user "cn=test2,ou=people,dc=test,dc=com" (Invalid credentials)
Sep 21 09:08:17 buggy login[3364]: FAILED LOGIN 1 FROM (null) FOR test2, Authentication failure
J'en conclu que sldapd est bien actif et que la configuration fonctionnelle. Par contre l'utilisateur est inconnu d'un module (account ?)
En lisant d'autre post j'ai effectué le test suivant puis afficher la trace se rapportant à nss et ldap :
[root@buggy ~]# strace -o info.txt id test2
id: test2: usager inexistant.
[root@buggy ~]# cat info.txt |grep -E '(nss|ldap)'
open("/etc/nsswitch.conf", O_RDONLY) = 3
read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1702
open("/lib/libnss_files.so.2", O_RDONLY) = 3
open("/lib/libnss_ldap.so.2", O_RDONLY) = 3
open("/etc/ldap.conf", O_RDONLY) = 3
read(3, "# @(#)$Id: ldap.conf,v 1.34 2004"..., 4096) = 4096
open("/etc/ldap.secret", O_RDONLY) = 3
open("/etc/openldap/ldap.conf", O_RDONLY) = 3
read(3, "# $OpenLDAP: pkg/ldap/libraries/"..., 4096) = 404
open("/root/ldaprc", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/root/.ldaprc", O_RDONLY) = -1 ENOENT (No such file or directory)
ldaprc n'est pas trouvé mais ça ne semble pas primordiale.
/etc/nsswitch est configuré. Bref je suis perdu. Ci dessous les fichiers de conf
[root@buggy pam.d]# cat system-auth
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
account sufficient /lib/security/pam_localuser.so
account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore authinfo_unavail=ignore] /lib/security/pam_ldap.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_cracklib.so retry=3 minlen=2 dcredit=0 ucredit=0
password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shadow use_authtok
password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
[root@buggy pam.d]# cat login
#%PAM-1.0
auth required pam_securetty.so
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_stack.so service=system-auth
session optional pam_console.so
# pam_selinux.so open should be the last session rule
session required pam_selinux.so multiple open
ldap.conf
host 127.0.0.1
base dc=test,dc=com
rootbinddn cn=Manager,dc=test,dc=com
scope sub
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
nss_base_passwd ou=people,dc=test,dc=com?sub
nss_base_shadow ou=people,dc=test,dc=com?sub
nss_base_group ou=group,dc=test,dc=com?sub
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
nsswitch.conf
passwd: files ldap
shadow: files ldap
group: files ldap
Toute idée est la bienvenue, notamment pour les phases de déboguage (comment afficher les log de ldap ? ...)
Merci
Stéph
Message édité par piaf666 le 21-09-2006 à 09:52:47