[CentOS] samba3x PDC and Win XP

Wed Aug 1 07:39:39 UTC 2012
Paul R. Ganci <ganci at nurdog.com>

I am at my wits end on this one. Ever since I upgraded to samba3x 
(present version 3.5.10-0.110.el5_8) in preparation for adding a Win 7 
client, my WinXP client can no longer find their roaming profiles nor 
can they assign their home shares to a drive at login. Logins and 
authentication work just fine and I can see the home and profile shares 
from the Win XP client after login. My smb.conf file contains (here are 
some essential snippets):

        # the login script name depends on the machine name
;       logon script = %m.bat
         # the login script name depends on the unix user used
;       logon script = %u.bat
         logon script = logon.bat
         # disables profiles support by specifing an empty path
;       logon path =
         logon path = \\%L\profile\%u\%m
         logon home = \\%L\%u
         logon drive = H:

[homes]
         path = /mnt/home/%u
         comment = Home Directories
         browseable = no
         writable = yes
         valid users = %S
         guest ok = no
         inherit permissions = yes

[profile]
         path = /mnt/home/profile
         browseable = no
         writeable = yes
         default case = lower
         preserve case = no
         short preserve case = no
         case sensitive = no
         hide files = /desktop.ini/ntuser.ini/NTUSER.*/
         write list = @smbusers @smbadmins
         create mask = 0600
         directory mask = 0700
         csc policy = disable
         profile acls = yes

I enabled debuging and from what I can tell the %u variable is not 
getting properly evaluated. For example for the homes share:

[2012/08/01 00:28:19.471215,  3] smbd/password.c:282(register_existing_vuid)
   register_existing_vuid: User name: snichols   Real name:
[2012/08/01 00:28:19.471240,  3] smbd/password.c:292(register_existing_vuid)
   register_existing_vuid: UNIX uid 501 is UNIX user snichols, and will 
be vuid 102
[2012/08/01 00:28:19.472336,  3] smbd/password.c:223(register_homes_share)
   Adding homes service for user 'snichols' using home directory: 
'/mnt/home/snichols'
[2012/08/01 00:28:19.472475,  3] param/loadparm.c:6287(lp_add_home)
   adding home's share [snichols] for user 'snichols' at '/mnt/home/%u'

Or for the profile service:

2012/08/01 00:28:19.488457,  1] smbd/service.c:1070(make_connection_snum)
   sasha (192.168.1.13) connect to service profile initially as user 
snichols (uid=501, gid=501) (pid 25876
2012/08/01 00:28:19.489251,  3] smbd/trans2.c:5100(call_trans2qfilepathinfo)
   call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1004
[2012/08/01 00:28:19.489364,  3] 
smbd/filename.c:945(get_real_filename_full_scan)
   scan dir didn't open dir [%u]
[2012/08/01 00:28:19.489399,  3] smbd/vfs.c:881(check_reduced_name)
   check_reduced_name [%u/sasha] [/mnt/home/profile]
[2012/08/01 00:28:19.489437,  3] smbd/vfs.c:962(check_reduced_name)
   check_reduced_name: couldn't get realpath for %u/sasha
[2012/08/01 00:28:19.489463,  3] smbd/filename.c:1184(filename_convert)
   filename_convert: check_name failed for name %u/sasha with 
NT_STATUS_ACCESS_DENIED
[2012/08/01 00:28:19.489495,  3] smbd/error.c:80(error_packet_set)
   error packet at smbd/trans2.c(5129) cmd=50 (SMBtrans2) 
NT_STATUS_ACCESS_DENIED

The samba/linux user that successfully logged in is snichols. Does 
anybody have a clue as to why %u is not evaluating to the linux username 
snichols and is getting treated simply as the string %u? I am sure it is 
something to stupid, but damn if I can see it.

-- 
Paul (ganci at nurdog.com)