[Samba] Change time causes profile corruption

Danny Paul jdpaul at gocolumbiamo.com
Mon Jul 11 16:13:40 GMT 2005


Greetings,

I have Samba 3.0.9 running on SuSE 9.2, 2.6.5-7.111-smp kernel. SAMBA is a
PDC using OpenLDAP as a passdb backend.  Workstations are combination w2k
SP3, SP4, and Windows XP SP1.

The problem I have is with profile syncronization.  If a user obtains a file
that has a blank modified time, Windows substitutes Jan 13, 2038 for the
date.  When the user logs out, the file is copied to the share with the
modified date of Jan 13, 2038 AND a creation date of the same.

Normally, this wouldn't be a problem.  However, when the user deletes the
file and logs out, the file isn't deleted from the share.  This behavior is
of course because the date on the file is greater than the folder that
contains it.  Windows then assumes that the file was created after the
current session was started so it merges with the rest of the profile. 
Now, when the user logs in, that file is mysteriously back, causing a great
deal of confusion, frustration, paranoia, and eventually dementia for the
user and, now, the SAMBA administrator!

As an interesting side note, I discovered that any file with that date/time
stamp under Windows has a timestamp of Dec 13, 1901 under Linux.  I suppose
that this is due to a '0' in that field being misinterpreted by Windows as
1 second beyond the maximum possible date (Those familiar with binary math
using 2's complement know exactly what I'm talking about.)

Any suggestions?

smb.conf attached:

[global]
        workgroup = XXXXXXXXXX
        server string = "XXXXXXXXXX Primary Domain Controller"
        null passwords = Yes
        passdb backend = ldapsam:ldap://XXXXXXXXXX
        log level = 1
        syslog = 0
        name resolve order = wins hosts bcast
        time server = Yes
        socket options = TCP_NODELAY SO_SNDBUF=65536 SO_RCVBUF=65536
IPTOS_LOWDELAY
        show add printer wizard = No
        add user script = /var/lib/samba/sbin/smbldap-useradd.pl -a -m '%u'
        delete user script = /var/lib/samba/sbin/smbldap-userdel.pl '%u'
        add group script = /var/lib/samba/sbin/smbldap-groupadd.pl -p '%g'
        delete group script = /var/lib/samba/sbin/smbldap-groupdel.pl '%g'
        add user to group script = /var/lib/samba/sbin/smbldap-groupmod.pl
-m '%u' '%g'
        delete user from group script
= /var/lib/samba/sbin/smbldap-groupmod.pl-x '%u' '%g'
        set primary group script = /var/lib/samba/sbin/smbldap-usermod.pl -g
'%g' '%u'
        add machine script = /var/lib/samba/sbin/smbldap-useradd.pl -w '%u'
        logon script = netlogon.cmd
        logon path = \\XXXXXXXXXX\profiles\%U
        logon home = \\XXXXXXXXXX\profiles\%U
        domain logons = Yes
        os level = 75
        preferred master = Yes
        domain master = Yes
        wins support = Yes
        ldap admin dn = cn=Manager,XXXXXXXXXX
        ldap group suffix = ou=group
        ldap idmap suffix = ou=Idmap
        ldap machine suffix = ou=people
        ldap suffix = dc=XXXXXXXXXX
        ldap user suffix = ou=people
        idmap backend = ldap://XXXXXXXXXX
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        profile acls = Yes
        map acl inherit = Yes

[netlogon]
        comment = "Net logon share"
        path = /netlogon
        write list = root

[profiles]
        comment = "Roaming profile share"
        path = /profiles
        read only = No
        hide files = /desktop.ini/Desktop.ini/DESKTOP.INI/


Yes, I'm aware that all those X's might be a problem - no they're not
actually in the file!




More information about the samba mailing list