[Samba] Strange issue with deleting files on shares
Jeremy Carhanter
jeremy.carhanter at gmail.com
Tue Aug 14 10:58:26 MDT 2012
Hi All,
I am migrating one of the servers I have to administer and I came across
this issue. It is going to be a little bit complicated to describe, but
I'll do my best.
First the configurations:
OLD SERVER: CentOS release 5.3 (Final), kernel 2.6.18-128.el5, samba
version 3.0.33-3.7.el5
CURRENT SERVER: Ubuntu 12.04 LTS, kernel 3.2.0-29-generic, samba version
3.6.3
CLIENTS: Mix of Windows XP SP3 and fullly updated Windows 7
If anything else about the configuration will be necessary, just let me
know.
What we need, is a samba share that is fully writable, but with
undeletable files. With undeletable directories exactly, files on the
other hand, must be deletable (because of the way MS Word edits files) .
So far it works very well, but my suspicion is, that the behavior we
have now between the server and the clients isn't configurable.
The directory which is the root of the share is owned by root and has
the sticky bit on. So do all the subdirs and when some client creates
new dir, this is achieved by a cron script (for a small amount of time,
the directory is owned by the original creator and without the sticky
bit set, but that is ok), that changes the owner to root and sets the
sticky bit on each directory not owned by root. Filesystem rights are
set to rwxrwxrwx (chmod 1777 is used in the cron script) so everybody
can write everywhere. When some client (they of course connect as other
users than root) deletes a directory an error screen appears, the
directory doesn't get deleted and so does NOTHING inside of that
directory. By nothing I mean also the files, owned by the user who
wanted to delete the directory. If I do this from a linux box (connect
as the same user as from windows, same rights, same server, same files,
same everything, just connecting from linux) the deleting is applied
recursively, meaning that samba traverses all subdirs of the directory I
wanted to delete and in each of these subdirs (and their subdirs and so
on) deletes files owned by me.
And here is where the problem comes... On the new server, this
linux-specific behavior applies also to windows clients. If I delete
some directory, which has the sticky bit set and is owned by root I do
see an error about permissions but all files owned by me in all of the
subdirs of this directory get deleted. And that is something that is not
allowed to happen.
So, my question is, am I missing something and is this somehow
configurable? Or did the deleting operation in samba source code changed
so much, that this "bug" we are happily using has been fixed and the
recursive deleting is how it should correctly be done? And if so, are
there any suggestions how to achieve the behavior we have now, except
for staying with the old version of samba?
Thank you all for your help and I apologize for my English.
Cheers,
Jeremy
More information about the samba
mailing list