[Samba] Problems with 'ntlm_auth --require-membership-of' using Samba 3.0.6

Matt Doran samba.10.matt_doran at spamgourmet.com
Tue Sep 7 13:08:07 GMT 2004

Hi there,

I'm trying to configure Squid to use a windows domain for 
authentication, and all goes well until I add the 
"--require-membership-of" option on ntlm_auth.   I need to restrict 
access based on group membership, however ntlm_auth does not seem to be 
behaving correctly.  I'm using Samba 3.0.6 on Debian and I'm using a 
Windows 2000 (SP4) Domain Controller.  I configured winbind as discussed 
here: http://www.squid-cache.org/Doc/FAQ/FAQ-23.html#ss23.5

ntlm_auth seems to report the membership of some groups correctly, but 
incorrectly for others.

Checking the group membership using getent, shows that the user "matt" 
belongs to the "Domain Admins", "Domain Users" and "TestGroup" groups.

    ~$ getent group -s winbind | grep matt
    VM-DOMAIN\Domain Admins:x:10002:VM-DOMAIN\Administrator,VM-DOMAIN\matt
    VM-DOMAIN\Domain Users:x:10000:VM-DOMAIN\Administrator, <snip....>,

Then using ntlm_auth to check for membership to the "Domain Users" or 
"Domain Admins" groups works as expected.

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\Domain Users'
    --username=matt --password=XXXX
    NT_STATUS_OK: Success (0x0)

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\Domain Admins'
    --username=matt --password=XXXX
    NT_STATUS_OK: Success (0x0)

But when I check for membership of the "TestGroup" (which is a Global 
group just like Domain Admins) it fails:

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\TestGroup'
    --username=matt --password=XXXX
    NT_STATUS_LOGON_FAILURE: Logon failure (0xc000006d)

So the getent output above, shows that "matt" is a member of the 
"TestGroup" group, but ntlm_auth seems to produce the incorrect output.  
It appears to know that the group and user exists and the password is 
valid because varying these params gives different error messages:

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\TestGroup2'
    --username=matt --password=XXXX
    [2004/09/07 22:48:18, 0]
      Winbindd lookupname failed to resolve VM-DOMAIN\TestGroup2 into a SID!

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\TestGroup'
    --username=matt2 --password=XXXX
    NT_STATUS_NO_SUCH_USER: No such user (0xc0000064)

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\TestGroup'
    --username=matt --password=WRONG_PWD
    NT_STATUS_WRONG_PASSWORD: Wrong Password (0xc000006a)

Now for the really weird part.  If I test to see if the "Administrator" 
user belongs to this group (which it does ... see the getent output 
above) then it succeeds:

    ~$ ntlm_auth --require-membership-of='VM-DOMAIN\TestGroup'
    --username=Administrator --password=password
    NT_STATUS_OK: Success (0x0)

The logs don't produce anything that looks relevant.  I'm stumped.  I've 
tried many different things, but I can't figure out the pattern as to 
why these are failing.   Something to do with user defined 
groups/users.  Could there be something wrong missing from the windows 
user/group setup?    The domain controller is a clean install of W2K 
SP4, which was then activated as a domain controller.

Any ideas would be greatly appreciated!


Matt Doran
PaperCut Software Pty. Ltd.
Web:     http://www.papercut.biz
Blog:    http://blogs.papercutsoftware.com/matt.doran/

More information about the samba mailing list