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.