Erwin Fritz
2004-Apr-20 22:00 UTC
[Samba] Winbindd can't load Idmap OU with SID-uid mappings
I'm running Samba 3.0.2a on Solaris 9. My shop also runs Active Directory on W2K (SP4). In an attempt to build a single sign-on solution, I thought I'd get Samba to allow Windows 2000 users to telnet/rlogin/ftp to my UNIX boxes without requiring those users to have a UNIX account. The Samba dox claim this is possible, because winbindd will map the AD account SID to a UNIX userid, and will store that mapping in the winbindd_idmap.tdb file. This works just fine. AD users can map drives and can connect to the UNIX box through telnet, rlogin, or ftp. They do not need a UNIX account. Problem solved? Not quite. I have many UNIX boxes, and because the Samba shares are NFS-mounted to these boxes, I have to ensure that the SID-uid mapping is consistent across all machines. Samba will do this by keeping the mapping in an OU created in the AD tree. I created that OU, and called it Idmap. For the life of me, though, I can't get Samba to store the mapping in the OU. It continues to store it in the winbindd_idmap file. My Solaris box is running Solaris 9, with patch 113476-13, MIT Kerberos 1.3.1, and OpenLDAP 2.2.5 (because Samba needs the LDAP stuff to compile). Samba was configured with these options: ./configure --prefix=/opt/samba \ --with-syslog \ --with-utmp \ --with-codepagedir=/var/samba/code \ --with-configdir=/var/samba/conf \ --with-lockdir=/var/samba/lock \ --with-privatedir=/var/samba/private \ --with-swatdir=/var/samba/swat \ --with-logfilebase=/var/samba/log \ --datadir=/var/samba/share \ --localstatedir=/var/samba/var \ --sharedstatedir=/var/samba/com \ --sysconfdir=/var/samba/etc \ --with-acl-support \ --with-krb5=/opt/kerberos \ --with-winbind \ --with-ldap \ --with-ldapsam The global portion of my smb.conf is: [global] workgroup = AD_DOMAIN realm = INTERNAL_DOMAIN.COM server string = Test server security = ADS password server = ad1.internal_domain.com ad2.internal_domain.com lanman auth = No ntlm auth = No client NTLMv2 auth = Yes client lanman auth = No client plaintext auth = No log level = 2 disable netbios = Yes name resolve order = host load printers = No os level = 0 lm announce = No preferred master = No local master = No domain master = No dns proxy = No ldap suffix = dc=internal_domain,dc=com ldap idmap suffix = ou=Idmap,dc=internal_domain,dc=com ldap admin dn = cn=Administrator,ou=Users,dc=internal_domain,dc=com ldap ssl = no idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/ksh winbind separator = + hosts allow = 198.161.66., 192.168.100. wide links = No I know the problem isn't with pam.conf or nsswitch.conf, since my AD users can connect to the Solaris box without any problems. When I try to connect, I get this error message on the Samba server: 'failed to bind to server with dn= cn=Administrator,ou=Users,dc=internal_domain,dc=com Error: Can't contact LDAP server' Well, I know the LDAP server works. Running both 'wbinfo -u' and 'getent passwd' shows the AD accounts. Am I missing something obvious here? Erwin Fritz Network Administrator Gilbert Laustsen Jung Associates Ltd.
Maybe Matching Threads
- idmap uid range 10000-20000: pam_winbind does NOT wor k ?
- tdb idmap returns different GID's for the same SID from time to time
- idmap + ldap + nsswitch +winbindd
- winbindd reporting wrong sid, but only sometimes on samba 3.0.23
- "net idmap dump" and "wbinfo" shows different GIDs for same SID