I didn't go too deeply on your issue, but it seems to me that since you have:

ldap user suffix = ou=People

You cannot simply have:

dn: [email protected],ou=mydomain,o=ndtc

But should have instead:

dn: [email protected],ou=People,ou=mydomain,o=ndtc

Am I wrong?


Nope. You're right. I have removed the "ou=People" line. Still no joy.


I suppose that you cannot simply remove it. You have to tell Samba where the user's container resides. Judging from your LDIF, your users seem to reside directly on ou=mydomain? Maybe you should look at the whole ldap arrangement...
The structure just doesn't seem right...

I hear you, but this existing structure is in production, and has been for several years. It isn't really going to change now, without really causing a whole lot of trouble.

New information: I finally got the username to be recognized. I have added "username map = /etc/samba/usermap.txt" in smb.conf, and added the entry "[email protected] = alexm" in usermap.txt. Eureka! The logs show that "Get_Pwnam_internals did find user [[email protected] ]!".

Now, I just have to figure out how to make the groups work... I have about 50 groups that I need to process. When I try to add a new group using the smbldap-tool smbldap-addgroup, I get an error stating "failed to add entry: Attribute is not allowed : cn at /usr/ share/perl5/vendor_perl/smbldap_tools.pm line 789.". For some reason, it does not like the cn that is trying to be added to the dn: ou=Groups,ou=ndtel,o=ndtc, objectClass: organizationalUnit, ou: Groups organizational unit. Now, an OU is not allowed to have a cn, that's part of an organizational role or organizational person. So, I'll have to do some troubleshooting to find out what they intended, and make their scripts work properly. The docs aren't very up-to- date, so I'm fighting that a little.

Thanks for all the help so far, everyone...

To follow up and finalize, this is now SOLVED.

First of all, I am using the IDEALX scripts (renamed now to smbldap- tools, but the IDEALX names sticks for backwards compatibility, apparently; they're located at http://sourceforge.net/projects/smbldap-tools/) . The ldap server I am using is an OpenLDAP-based server made by Mirapoint. Now, the scripts have a couple of changes that need to be done in order for them to work with, at least, this incarnation of OpenLDAP. Here are the diffs, if anyone wants them:

diff /usr/share/perl5/vendor_perl/smbldap_tools.pm.org /usr/share/ perl5/vendor_perl/smbldap_tools.pm
783c783
<             objectClass => [ 'top', 'posixGroup' ],
---
> objectClass => [ 'top', 'organizationalRole', 'posixGroup' ],



diff /opt/IDEALX/sbin/smbldap-populate.org /opt/IDEALX/sbin/smbldap- populate
312c312
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
324c324
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
335c335
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
346c346
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
357c357
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
402c402
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
424c424
<    objectClass =>       [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
435c435
<    objectClass =>       [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],
446c446
<    objectClass => [qw(top posixGroup sambaGroupMapping)],
---
> objectClass => [qw(top organizationalRole posixGroup sambaGroupMapping)],


As you can see, I had to add the organizationalRole ou to each group instance. That's because, in at least the Mirapoint implementation of OpenLDAP, the posixGroup schema does not allow a cn value... Or, maybe I added it when I set the server up (it was about 3 years ago, and I haven't had to touch it since), the posixGroup schema I used was old/broken/incomplete/outdated, take your pick. Regardless of the cause, rather than change the posixGroup schema on the server, I took the easier (for me!) route of "fixing" the scripts to work with my ldap server.

OK, once that was done, all the smbldap group commands worked. I was able to add the groups that my user needed. Then, it was just a matter of changing (syncing? updating? creating?) the samba user password, and everything was working.

So, the combination of using a usermap (email_address = windows_username, for instance, [email protected] = alexm) and getting all the background data required for samba into the ldap directory did it. The usermap is what saved my hide.

Thanks all for the help contributed to this problem and my education... I appreciate it!

Alex
--
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/options/samba

Reply via email to