[Samba] Strange behaviour with LDAP searches

Heiko Wundram modelnine at modelnine.org
Wed Aug 26 09:23:55 UTC 2015


Hey,

Am 26.08.2015 11:09, schrieb L.P.H. van Belle:
> ah, ok, yes, i didnt look to good at the filters.
> 
> I was thinking the "Machine Account" was an OU
> but whats strange also, why is that machine account in the "user", and
> not in "Computers"
> i dont have any "computer" in the users OU.

the "machine account" is a regular user that I created for non-joined 
"machines/services" to access AD directory information. I.e., it's a 
mostly unprivileged user (in cn=Users) that simply allows bind access to 
the directory for queries from external services such as nslcd - and in 
this specific case also Redmine (for group synchronization from AD).

What I'm slightly worried about is that the OR-query should, from what I 
know about LDAP filters, return two results, as both groups exist, and 
just using the query

(|(distinguishedName=cn=Users,cn=Builtin,dc=id,dc=modelnine,dc=org)
   (distinguishedName=cn=Guests,cn=Builtin,dc=id,dc=modelnine,dc=org))

-> 2 results

does return both groups. What breaks the search is AND-ing this query 
with the requirement that the returned objects have one of the specified 
dns and also (objectClass=group): this search returns no results:

(&(objectClass=group)
   (|(distinguishedName=cn=Users,cn=Builtin,dc=id,dc=modelnine,dc=org)
     (distinguishedName=cn=Guests,cn=Builtin,dc=id,dc=modelnine,dc=org)))

-> 0 results

What does return a (single) result (as it should) is asking for a single 
group with (objectClass=group) and a DN:

(&(objectClass=group)
   (distinguishedName=cn=Users,cn=Builtin,dc=id,dc=modelnine,dc=org))

-> 1 result

I'm more than sure that the combined query "works" (returns two results) 
with a vanilla Debian Jessie Samba 4 installation (as I've had Redmine 
pull the groups for users from AD for quite some time) and I'm trying to 
recreate that now; it does not work anymore after upgrading the system 
to a Sernet Samba 4.2.3, and neither does it work against the Gentoo 
Samba 4.1.19 I have running on the system I posted the queries from.

As Redmine uses a query of the form 
(&(objectClass=group)(|(distinguishedName=group1)(distinguishedName=group2)(distinguishedName=group3)(...))) 
resolve the memberOf-elements of a user (replacing group1, etc. with an 
OR-join of the DNs), and this does not return any elements, Redmine 
currently does not assign _any_ groups to users retrieved from AD, which 
is a show-stopper.

Does this clear up better what the problem is?

-- 
--- Heiko.



More information about the samba mailing list