[Samba] Re: Group mapping, among other problems

Jérôme Fenal jfenalml at free.fr
Mon Oct 6 19:56:05 GMT 2003


Granzow, Matt (MED, Adecco) wrote:

> Hopefully I can write this out so someone understands it.  
> 
> We are currently running a number of Solaris servers, to which windows
> computers need to connect.  Currently they connect via NFS using
> hummingbird's NFS client.  This requires them to have a separate unix
> account along with their windows account.
> 
> Our idea is to implement samba 3.0.0 to eliminate that NFS client.  
> 
> My current problems are:
> 
> #1, when I mount my share (in either windows or unix using smbclient), I
> am not getting the proper permissions.  We have a group (lets call it
> happy) in both unix, and in our windows domain.  with winbind, the
> domain\happy group obviously isn't getting the same GID as the unix
> happy group.  the share we are working on is 0775, so I can't write to
> it when I connect using my domain acct.  in net groupmap  a mapping for
> the group domain\happy = happy, and in my username.map file, I have * =
> domain\*.   What else do I need to setup to get this working?  using
> getent group I only get one group in my domain, but when I run wbinfo -g
> I get the full list.  getent passwd gets me all the users in the domain,
> so I don't understand what is so broken about groups.  
> 
> #2, when I have something mounted, and I run smbstatus (or click status
> from swat), it will just hang where it is finding who is connected.  
> 
> Here is a copy of my smb.conf file.  hopefully it will help someone
> figure this out.  yes winbind is running, and it has a computer account
> in the domain.  wbinfo works.  ntlm_auth works.  So I know I'm close,
> but I just can't figure out this last part.  and yes, I do need that
> many uid's if I have to use winbind enum users = yes
> 
> [global]
>         workgroup = ourdomain
>         netbios name = BOXEN
>         server string = Samba %v on %L
>         security = DOMAIN
>         password server = pdc
>         username map = /usr/local/samba/lib/username.map
>         username level = 2
>         log file = /var/log/samba/samba.%m
>         max open files = 20000
>         load printers = No
>         preferred master = No
>         local master = No
>         domain master = No
>         kernel oplocks = No
>         ldap ssl = no
>         idmap uid = 10000-45000
>         idmap gid = 10000-20000
>         winbind enum users = yes
>         winbind enum groups = yes
>         create mask = 0775
>         directory mask = 0775
>         mangled names = No
>         oplocks = No
>         level2 oplocks = No
> 
> [smbview]
>         comment = viewstorage
>         path = /smbview
>         read only = No
>         writable = yes
> 
> /smbview is 0775 and so are all the files in it.  All i need to do is
> get users that authenticate via samba to get the proper group assigned
> when they connect.
> 
> Thanks for any help!
> Mathew Granzow

I think that I have the same problem.
My setup :
- PDC on RH9 (Samba3 RPM + small Jeremy %S patch + remove of -g in Make 
to avoid crunching the disks), SAM on ldapsam. Works nice (I gave up 
FreeBSD 5.1).
- Member server on Solaris 9, Samba 3 + %S patch, using Winbind.

Winbind works quite nicely for users, ksh recognises ~user, I get the 
right conversions for SID to uid, uid to SID, and so on...

But not for groups.
In fact, I think that the group mapping code for winbind is a little bit 
too fast. Let me explain :

Here are my group definitions in LDIF format :

dn: cn=Domain Admins,ou=Groups, dc=dummy,dc=com
sambaSID: S-1-5-21-3210478623-1080310788-3073812203-2025
gidNumber: 512
displayName: Domain Admins
memberUid: Administrator
memberUid: root
memberUid: jerome
memberUid: david
sambaGroupType: 2
objectClass: posixGroup
objectClass: sambaGroupMapping
description: Local Unix group
cn: Domain Admins

dn: cn=domusers,ou=Groups, dc=dummy,dc=com
sambaSID: S-1-5-21-3210478623-1080310788-3073812203-2027
gidNumber: 513
displayName: Domain Users
sambaGroupType: 2
memberUid: jerome
memberUid: david
memberUid: henri
memberUid: mytest
memberUid: mytest2
description: Utilisateurs du domaine
objectClass: posixGroup
objectClass: sambaGroupMapping
cn: domusers

dn: cn=Domain Guests,ou=Groups, dc=dummy,dc=com
sambaSID: S-1-5-21-3210478623-1080310788-3073812203-2029
gidNumber: 514
displayName: Domain Guests
sambaGroupType: 2
objectClass: posixGroup
objectClass: sambaGroupMapping
description: Local Unix group
cn: Domain Guests

Notice the gidNumbers, and the SID numbers, which are «dans la ligne du 
parti»:
sid-suffix = 1000 + gid*2 + 1

Now, let have a look to conversion when trying to resolve groups on the 
Solaris member server (with net rpc group list) :

System Operators (S-1-5-32-549) -> -1
Replicators (S-1-5-32-552) -> -1
Guests (S-1-5-32-546) -> -1
Domain Admins (S-1-5-21-3209628119-1617240125-1967951502-512) -> -1
Domain Guests (S-1-5-21-3209628119-1617240125-1967951502-514) -> -1
Power Users (S-1-5-32-547) -> -1
Print Operators (S-1-5-32-550) -> -1
Administrators (S-1-5-32-544) -> -1
Domain Users (S-1-5-21-3209628119-1617240125-1967951502-513) -> -1
Account Operators (S-1-5-32-548) -> -1
Backup Operators (S-1-5-32-551) -> -1
Users (S-1-5-32-545) -> -1

Seems to me that the SID are a little bit mangled with gidNumbers...

This is all the information I have at hand for now, If you need more 
information, you'll have to wait until thrusday.

Regards,

Jérôme





More information about the samba mailing list