[Pkg-samba-maint] Bug#553923: winbind: idmap_rid cache becomes corrupted when mixing group and user queries

Castan Eric eric.castan at elca.ch
Mon Nov 2 09:27:28 UTC 2009


Package: winbind
Version: 2:3.2.5-4lenny7
Severity: important

I have investigated a strange issue on a system not allowing users to login.
It appeared that the winbind cache eventually got corrupt when mixing group queries and user queries.

I am using the idmap_rid allocator.

If one queries with "wbinfo -G" for a group whose id is indeed a user id, that user won't exist any more in winbind

Example on a sane system:

eca at pp2tnce10c:~$ wbinfo -i 'PREPROD\jcb'
jcb:*:11129:10513:XXXXXXXXXXXXXXX YYYYYY:/home/PREPROD+jcb:/bin/bash


How to get a corrupt system (different from the first one, though)

## Step 1 : Try to group-resolve a user id
eca at pp2tnsa10c:~$ wbinfo -G 11129
S-1-5-21-4162644616-3733566000-1282571631-1129

## Step 2 : You can check that jcb's account is locked because his SID is now associated to a group account in winbind cache
eca at pp2tnsa10c:~$ id jcb
id: jcb: No such user
eca at pp2tnsa10c:~$ wbinfo -s S-1-5-21-4162644616-3733566000-1282571631-1129
PREPROD\jcb 1
eca at pp2tnsa10c:~$ wbinfo -n 'PREPROD\jcb'
S-1-5-21-4162644616-3733566000-1282571631-1129 User (1)
eca at pp2tnsa10c:~$ wbinfo -i 'PREPROD\jcb'
Could not get info for user PREPROD\jcb
##############

For some reason, this occurs without intent on one of my systems.
If you want the locked account to be able to log in again, you have to wait for the positive ttl to expire, or to manually clean up winbind caches.

I attach my smb.conf so that one can easily reproduce

eca at pp2tnsa10c:~$ testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
[global]
        workgroup = PREPROD
        realm = PREPROD.COMPANY.COM
        security = ADS
        restrict anonymous = 2
        client NTLMv2 auth = Yes
        use kerberos keytab = Yes
        idmap domains = PREPROD, CORP, OTHERTRUSTED
        template homedir = /home/%D+%U
        template shell = /bin/bash
        winbind enum users = Yes
        winbind enum groups = Yes
        winbind use default domain = Yes
        winbind refresh tickets = Yes
        idmap config OTHERTRUSTED:range = 70000 - 79999
        idmap config OTHERTRUSTED:backend = tdb
        idmap config CORP:range = 50000 - 69999
        idmap config CORP:backend = rid
        idmap config PREPROD:range = 10000 - 49999
        idmap config PREPROD:backend = rid


-- System Information:
Debian Release: 5.0.3
  APT prefers stable
  APT policy: (800, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages winbind depends on:
ii  adduser         3.110                    add and remove users and groups
ii  libc6           2.7-18                   GNU C Library: Shared libraries
ii  libcomerr2      1.41.3-1                 common error description library
ii  libkrb53        1.6.dfsg.4~beta1-5lenny1 MIT Kerberos runtime libraries
ii  libldap-2.4-2   2.4.11-1                 OpenLDAP libraries
ii  libpam0g        1.0.1-5+lenny1           Pluggable Authentication Modules l
ii  libpopt0        1.14-4                   lib for parsing cmdline parameters
ii  libtalloc1      1.2.0~git20080616-1      hierarchical pool based memory all
ii  libwbclient0    2:3.2.5-4lenny7          client library for interfacing wit
ii  lsb-base        3.2-20                   Linux Standard Base 3.2 init scrip
ii  samba-common    2:3.2.5-4lenny7          Samba common files used by both th

winbind recommends no packages.

winbind suggests no packages.

-- no debconf information





More information about the Pkg-samba-maint mailing list