[Samba] Samba 3.4.7 can't retrieve idmap infor from ldap

Gaiseric Vandal gaiseric.vandal at gmail.com
Mon Mar 21 15:40:42 MDT 2011


Wireshark provided some better detail of traffic capturing.  The bind 
was OK with  either cn=Directory Manager or 
cn=proxyagent,ou=mydomain.com-  as long as not quoted.

The invalid DN responses were also generated if the ldap_base_dn  values 
were quote.

The following is wrong
     ...
     idmap alloc config:ldap_base_dn = "ou=alloc,ou=idmap,o=ssci.com"
     ...
     idmap config ENGINEERING:ldap_base_dn = 
"ou=engineering,ou=idmap,o=ssci.com"


The following is OK (ie. no bind errors)

     ...
     idmap alloc config:ldap_base_dn = ou=alloc,ou=idmap,o=ssci.com
     ...
     idmap config ENGINEERING:ldap_base_dn = 
ou=engineering,ou=idmap,o=ssci.com


So LDAP authentication seems OK.  Although log.winbind still shows 
lookup errors (

-------------------------------------------------------------------------------------------------------------------
[2011/03/21 16:51:22,  1] winbindd/winbindd_user.c:97(winbindd_fill_pwent)
   error getting user id for sid S-xxxxxxxxxxxxxx-1217
[2011/03/21 16:51:22,  1] winbindd/winbindd_user.c:856(winbindd_getpwent)
   could not lookup domain user rsmith

[2011/03/21 16:51:22,  1] winbindd/winbindd_user.c:856(winbindd_getpwent)
   could not lookup domain user jsmith

(In the examble above there is an idmap entry in LDAP for jsmith but not 
rsmith.)

-------------------------------------------------------------------------------------------------------------------


The "wbinfo --allocate-uid" command does work-

             # wbinfo --allocate-uid
             New uid: 30778
             # wbinfo --allocate-uid
             New uid: 30779

the uidNumber parameter in ou=alloc is incremented -  it now shows 30780.

But I can not manually set a uid mapping:

             #wbinfo --set-uid-mapping 123,S-xxxxxxxxxxxxxx-1217
             Could not create or modify uid to sid mapping

             #wbinfo --set-uid-mapping 30779,S-xxxxxxxxxxxxxx-1217
             Could not create or modify uid to sid mapping




The wbinfo --set-uid-mapping command DOES work on the PDC.         The 
member server just doesn't seem to read the information properly.

On 03/21/2011 04:17 PM, Gaiseric Vandal wrote:
> Linux "unix" authentication uses a proxyagent account.     There is no 
> particular reason that Samba should use this account.
>
> However, to rule out the spaces and quotes being an issue, I updated 
> the smb.conf on this machine (Fedora Core 11 linux member server) to 
> use the  cn=proxyagent,ou=mydomain.com  account.     The account has 
> sufficient privs to read existing LDAP  entries, even if it can't 
> create new ones.
>
> If I quote it, I get the following error:
>
>       get_credentials: Unable to fetch auth credentials for 
> "cn=proxyagent,ou=profile,o=ssci.com"
>
> If I don't quote it, I don't get credential error messages.  So on 
> FC11 Linux Member servers running Samba 3.4.7,  the ldap user in 
> smb.conf should be unquoted, not have spaces, and be in the same ldap 
> suffix as everything else.
>
> But I still get the following error
>
>         [2011/03/21 15:53:06,  3] 
> winbindd/idmap_ldap.c:1248(idmap_ldap_sids_to_unixids)
>           Failure looking up sids (Invalid DN syntax)
>
> Since I have 3 LDAP servers (in replication) I just updated smb.conf 
> to use one ldap server while having /etc/ldap.conf (and 
> /etc/openldap/ldap.conf)  use another one.  That way  when I watch 
> ldap traffic between this machine and an LDAP server I can distiguish 
> between traffic related to unix accounts and that related to samba idmap.
>
>
> I don't see any relevant ldap server error or access logs.  snoop 
> (packet capture) does show
>
> sambamember1 -> ldapserver1 LDAP C port=59073 Search Request 
> neverDerefAliases
> ldapserver1 -> sambamember1 LDAP R port=59073 Search ResDone Invalid 
> DN Syntax
> sambamember1 -> ldapserver1 LDAP C port=59073
>
>
>
>
>
>
> On 03/21/2011 12:37 PM, Ayman Tahboub wrote:
>> hiya,
>>
>> that sound as reasonable  to me, perhaps due to the while space
>>
>> it might be safer to quote the entry,,
>>
>> on the other side what are you seeing under the Access and Errors 
>> logs for DS?
>>
>> are you seeing the actual bind coming in?
>>
>> on the FC machine I presume you are running over proxyagent?
>>
>> hope it helps
>>
>> /ayman
>>
>>
>> -----Original Message----- From: Gaiseric Vandal
>> Sent: Monday, March 21, 2011 16:21
>> To: Ayman Tahboub ; Samba
>> Subject: Re: [Samba] Samba 3.4.7 can't retrieve idmap infor from ldap
>>
>> I tried with and without the double quotes.
>>
>> the following commands do work in linux  (it will prompt me for the pw.)
>>
>>     ldapserach -D "cn=Directory Manager" -b "" objectclass=*  -x -W
>>     ldapsearch -D "cn=admin,cn=Administrators,cn=config" -h spooky -b
>> ""  -x -W
>>
>> Not sure in smb.conf whether I should ever quote the ldap_user_dn
>> parameter.  Maybe it should be quoted if it is an absolute vs relative
>> entry?
>>
>>
>>
>>
>>
>>
>> On 03/21/2011 11:34 AM, Ayman Tahboub wrote:
>>> hiya Gaiseric,
>>>
>>> one quick note against your binding DN, I think you
>>> its complaining about having double quotations ""CN=Directory Manager""
>>>
>>> one the other side, you verified binding via normal LDAPSEARCH 
>>> command ,
>>>
>>> as in ldapserach -D"CN=directory manager" -b "" objectclass=* ?
>>>
>>> hope it helps
>>>
>>> /ayman
>>>
>>>
>>> -----Original Message----- From: Gaiseric Vandal Sent: Thursday, 
>>> March 17, 2011 20:12 To: Samba Subject: [Samba] Samba 3.4.7 can't 
>>> retrieve idmap infor from ldap
>>> I am running Samba 3.4.7on Fedora Core 11 Linux.  This is a domain 
>>> member.
>>>
>>> My PDC is Samba 3.4.9 on Solaris 10.  I have LDAP as a backend 
>>> (Sun/Oracle Directory Server 6.)    I have an OU for user accounts, 
>>> and an OU for idmap entries.  The PDC has already populated some 
>>> idmap entries.
>>>
>>> An idmap entry looks like
>>>
>>>
>>>
>>> dn: sambaSID=S-1-5-21-xxxxxxxxxxxxxxx-1121,ou=mydomain,ou 
>>> =idmap,o=mycomany.com
>>> objectClass: sambaIdmapEntry
>>> objectClass: sambaSidEntry
>>> uidNumber: 176
>>> sambaSID: S-1-5-21-xxxxxxxxxxxxxxx-1121
>>>
>>> The member servers can be read only
>>>
>>>
>>> In the member server, smb.conf has the following entries
>>>
>>> idmap config MYDOMAIN:backend = ldap
>>> idmap config MYDOMAIN:ldap_url = ldap://pdc.mycompany.com
>>> idmap config MYDOMAIN:readonly = yes
>>> idmap config MYDOMAIN:default=no
>>> idmap config MYDOMAIN:ldap_base_dn = 
>>> "ou=mydomain,ou=idmap,o=mycompany.com"
>>> #idmap config MYDOMAIN:ldap_user_dn = cn=Directory Manager
>>> #idmap config MYDOMAIN:ldap_user_dn = 
>>> cn=admin,cn=Administrators,cn=config
>>> idmap config MYDOMAIN:ldap_user_dn = 
>>> uid=jsmith,ou=people,o=mycompany.com
>>> idmap config MYDOMAIN:range = 70000-79999
>>> idmap config MYDOMAIN:uid = 100 -79999
>>> idmap config MYDOMAIN:gid = 100 -79999
>>>
>>>
>>>
>>>
>>>
>>> On this machine (FC11 member server), when I run "getent passwd" 
>>> command, log.winbind shows
>>>
>>>
>>>   failed to bind to server ldap://pdc.mycompany.com with 
>>> dn=""cn=Directory Manager"" Error: Invalid DN syntax
>>>       Invalid DN
>>>
>>> On gentent passwd, winbind.log shows
>>>
>>>  lib/smbldap.c:890(smbldap_open_connection)
>>>   smbldap_open_connection: connection opened
>>> lib/smbldap.c:1101(smbldap_connect_system)
>>>   ldap_connect_system: successful connection to the LDAP server
>>> winbindd/idmap_ldap.c:1248(idmap_ldap_sids_to_unixids)
>>>   Failure looking up sids (Invalid DN syntax)
>>>
>>>
>>>
>>> If there is NOT an idmap entry already for the user, I get 
>>> winbind.log entries like:
>>>
>>> [2011/03/17 12:52:48,  1] 
>>> winbindd/winbindd_user.c:97(winbindd_fill_pwent)
>>>   error getting user id for sid S-1-5-21-xxxxxxxxxxxx-1083
>>> [2011/03/17 12:52:48,  1] 
>>> winbindd/winbindd_user.c:856(winbindd_getpwent)
>>>   could not lookup domain user jkerry
>>>
>>> [2011/03/17 12:52:48,  1] 
>>> winbindd/winbindd_user.c:97(winbindd_fill_pwent)
>>>   error getting user id for sid S-1-5-21-xxxxxxxxxxxx-1044
>>> [2011/03/17 12:52:48,  1] 
>>> winbindd/winbindd_user.c:856(winbindd_getpwent)
>>>   could not lookup domain user jmcain
>>>
>>> It looks like it tried to locate a record via user name or sid.
>>>
>>> If there is an idmap entry already for the use I only
>>>
>>>
>>> [2011/03/17 12:52:48,  1] 
>>> winbindd/winbindd_user.c:856(winbindd_getpwent)
>>>   could not lookup domain user jsmith
>>>
>>>
>>> So the samba member server is connecting to the LDAP server and 
>>> retrieving some LDAP information.  But it seems that the LDAP info 
>>> is NOT formatted as expected (thus the Invalid DN Syntax errors.)
>>>
>>> The PDC was initially Samba 3.0.x, and I am guessing that the LDAP 
>>> IDMAP syntax changed between 3.0.x and 3.4.x,
>>>
>>> I would appreciate advice on this.
>>>
>>> Thanks
>>>
>>>
>>>
>>>
>>
>



More information about the samba mailing list