any LDAP experts around
Lonni J Friedman
netllama at gmail.com
Wed Aug 27 07:18:22 PDT 2008
On Wed, Aug 27, 2008 at 5:59 AM, James McDonald
<james at jamesmcdonald.id.au> wrote:
> Lonni J Friedman wrote:
>>
>> I have a Linux server running OpenLDAP-2.4.10, which a number of
>> client systems (Linux & Mac) use for ssh/shell account authentication.
>> I'm hitting the frustrating problem where all attempts by any user
>> to change their LDAP password with 'passwd' fail with:
>> LDAP password information update failed: Insufficient access
>> passwd: Permission denied
>>
>> I strongly suspect this is due to wrong ACLs in slapd.conf, but I've
>> following the official doc (
>>
>> http://www.openldap.org/doc/admin23/slapdconfig.html#Configuration%20File%20Example
>> ) without any improvement.
>>
>> I've got the following in /etc/openldap/slapd.conf :
>> ####################
>> database bdb
>> suffix "dc=cuda-fs0,dc=foo,dc=com"
>> rootdn "cn=Manager,dc=cuda-fs0,dc=foo,dc=com"
>> rootpw {MD5}XXXXXXXXXXXXXXXXXX==
>> access to attrs=userPassword
>> by self write
>> by anonymous auth
>> by dn.base="cn=Manager,dc=cuda-fs0,dc=foo,dc=com" write
>> by * none
>> access to *
>> by * read
>> ####################
>>
>> I kicked the LDAP server to debug level 256 to attempt to figure out
>> exactly what is going wrong, and saw the following output at the time
>> of an attempted (and failed) password change:
>>
>> conn=8 op=6 BIND
>> dn="uid=lfriedman,ou=People,dc=cuda-fs0,dc=foo,dc=com" method=128
>> conn=8 op=6 BIND
>> dn="uid=lfriedman,ou=People,dc=cuda-fs0,dc=foo,dc=com" mech=SIMPLE ssf=0
>> conn=8 op=6 RESULT tag=97 err=0 text=
>> conn=8 op=7 MOD dn="uid=lfriedman,ou=People,dc=cuda-fs0,dc=foo,dc=com"
>> conn=8 op=7 MOD attr=userPassword
>> conn=8 op=7 RESULT tag=103 err=50 text=
>>
>> That "tag=103 err=50" seems to be the critical bit of info, however
>> I've googled on it for a while, and the consensus seems to be that
>> incorrect ACLs would cause it. However since I'm using exactly what
>> is suggested in the official dox, that seems unlikely.
>>
>> /etc/pam.d/passwd on the Linux client systems hasn't changed for ages,
>> and contains:
>> #########
>> auth include system-auth
>> account include system-auth
>> password include system-auth
>> #########
>>
>> /etc/pam.d/system-auth on the Linux client systems also hasn't changed
>> recently, and contains:
>> #########
>> auth required pam_env.so
>> auth sufficient pam_unix.so nullok try_first_pass
>> auth requisite pam_succeed_if.so uid >= 500 quiet
>> auth sufficient pam_ldap.so use_first_pass
>> auth required pam_deny.so
>>
>> account required pam_unix.so broken_shadow
>> account sufficient pam_succeed_if.so uid < 500 quiet
>> account [default=bad success=ok user_unknown=ignore] pam_ldap.so
>> account required pam_permit.so
>>
>> password requisite pam_cracklib.so try_first_pass retry=3
>> password sufficient pam_unix.so md5 shadow nullok try_first_pass
>> use_authtok
>> password sufficient pam_ldap.so use_authtok
>> password required pam_deny.so
>>
>> session optional pam_keyinit.so revoke
>> session required pam_limits.so
>> session [success=1 default=ignore] pam_succeed_if.so service in
>> crond quiet use_uid
>> session required pam_unix.so
>> session optional pam_ldap.so
>> #########
>>
>> In an attempt to isolate this better, I figured I'd write up a PHP
>> frontend to ldapmodify and see if it fared any better. Sadly, it
>> fails as well in all password change attempts:
>> PHP Warning: ldap_mod_replace() [<a
>> href='function.ldap-mod-replace'>function.ldap-mod-replace</a>]:
>> Modify: Strong(er) authentication required in
>> /var/www/html/ldap/ldap.inc on line 56
>>
>> That error is coming out of here:
>>
>> $ldapconn = ldap_connect("cuda-fs0.nvidia.com", 389) ;
>> $ldapbind =
>> @ldap_bind($ldapconn,"uid=".$PHP_AUTH_USER.",dc=cuda-fs0,dc=nvidia,dc=com",$MPASSWD)
>> ;
>> if ( ldap_mod_replace ($ldapconn,
>> "uid=".$PHP_AUTH_USER.",dc=cuda-fs0,dc=nvidia,dc=com",
>> array('userpassword' =>
>> "{MD5}".base64_encode(pack("H*",md5($PHP_NEWPASS)))))) {
>> print "SUCCEDED" ;
>> } else {
>> print "PASSWORD CHANGE FAILED" ;
>> }
>>
>> I'm at a complete loss at this point on what is wrong.
>>
>>
>
> Is userpassword or userPassword causing an issue?
>
> You mentioned you can do this as manager so it's definately perms yes?
I'm not sure where the problem lies. I"m stumped.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
L. Friedman netllama at gmail.com
LlamaLand https://netllama.linux-sxs.org
More information about the Linux-users
mailing list