libpam_ldapd – pam_ldap(sshd:account):'无法识别用户'

我试图在Ubuntu / Debian虚拟机上testinglibpam_ldapd的安装过程。

我closures了nscd / nslcd服务,并且正在监视nslcd -d/var/log/auth.log的输出,

我在nslcd.conf中设置的filter/映射工作正常,我只使用ldap作为密码 – 这意味着我只想检查系统上已经存在的帐户的密码,因此我只使用:

在/etc/nsswitch.conf中shadow files ldap

nslcd -d的输出说绑定工作正常,但是auth日志说明:

 sshd[]: pam_ldap(sshd:auth): username changed from rovangju to RovangJu sshd[]: pam_unix(sshd:account): could not identify user (from getpwnam(RovangJu)) sshd[]: Failed password for rovangju from 127.0.0.1 port 44245 ssh2 

试图进行SSHlogin的控制台不会收到任何错误:

 rovangju@vbox-u64:~$ ssh 0 rovangju@0's password: [enter correct password] Connection closed by 127.0.0.1 

很明显,绑定使用的是来自ldap属性的cn / uid,该属性是大写字母的用户名,但unix用户名全部是小写。 有谁知道如何解决这个问题?

我发现这个问题最近的地方在这里: http : //forums.opensuse.org/english/get-technical-help-here/install-boot-login/445925-pam_ldap-username-case-sensitivity-opensuse -11-2-a.html

提前致谢!

编辑:另一个踢球者是这样的:出于某种原因,我可以欺骗模块这样做:

 rovangju@vbox-u64:~$ ssh 0 rovangju@0's password: [enter WRONG password] Permission denied, please try again rovangju@0's password: [enter CORRECT password] [and bingo, I'm in] 

为了避免使用ldap的用户名(大写)的问题 – 我从源代码注释掉了一个块:

nss-pam-ldapd-0.xx / nslcd / pam.c:L120-125

 /* check if the username is different and update it if needed */ /*if (strcmp(username,value)!=0) { log_log(LOG_INFO,"username changed from \"%s\" to \"%s\"",username,value); strcpy(username,value); }*/