Oddities with file deletion on CIFS drive
Quanah Gibson-Mount
quanah@zimbra.com
Fri Sep 10 17:49:00 GMT 2010
--On Friday, September 10, 2010 11:16 AM +0200 Corinna Vinschen <> wrote:
> On Sep 8 15:17, Quanah Gibson-Mount wrote:
>> I have a CIFS drive I connect to as the windows user. I can write
>> to the drive with no problem. However, when I go to delete files
>> from the drive, Cygwin behaves very oddly.
>>
>> build@zre-win-002
>> /cygdrive/z/current/WINDOWS/main/20100908131458_ZDESKTOP/ZimbraBuild/tem
>> plates $ rm -f *
>
> If you call rm w/o the -f flag, what error message do you get?
> Just a simple "Permission denied", I guess.
Nope. It doesn't give any error.
build@zre-win-002
/cygdrive/z/current/WINDOWS/main/20100908131458_ZDESKTOP/ZimbraBuild/templates
$ rm BUILD_ISYNC_template
rm: remove write-protected regular file `BUILD_ISYNC_template'? y
build@zre-win-002
/cygdrive/z/current/WINDOWS/main/20100908131458_ZDESKTOP/ZimbraBuild/templates
$ ls -l BUILD_ISYNC_template
-r-xr-xr-x 1 ???????? ???????? 1453 2010-09-08 13:31 BUILD_ISYNC_template
>> build@zre-win-002
>> /cygdrive/z/current/WINDOWS/main/20100908131458_ZDESKTOP/ZimbraBuild/tem
>> plates $ ls -l
>> total 104
>> -r-xr-xr-x 1 ???????? ???????? 1362 2010-09-08 13:31 BUILD_EVO_template
>> -r-xr-xr-x 1 ???????? ???????? 1453 2010-09-08 13:31 BUILD_ISYNC_template
>> [...]
>> Now, if I modify the file to be +w, then -w, so it returns to its
>> original permissions, I can suddenly delete it:
>
> Did you create the files with a Cygwin aplication or with a native Win32
> application? In theory, there's nothing mysterious here, if the
> permissions of the file are so that the DELETE permission for your user
> or group is missing in the file's ACL. For obvious reasons the POSIX
> permission bits can't reflect the complexity of the original NT ACL.
> The chmod +w/-w somehow overwrite the original permissions with POSIX
> permissions as Cygwin generates them and the result is more DELETE
> friendly. Did you try to compare the ACL before and after the chmod?
> The output of `cacls filename' is probably different.
The files are created with a native Win32 application (Perforce), where it
is checking these files out of the Perforce repository.
Here is the output from cacls prior to +w/-w:
build@zre-win-002
/cygdrive/z/current/WINDOWS/main/20100908131458_ZDESKTOP/ZimbraBuild/templates
$ cacls BUILD_ISYNC_template
Z:\current\WINDOWS\main\20100908131458_ZDESKTOP\ZimbraBuild\templates\BUILD_ISYNC_template
Everyone:F
<Account Domain not found>F
<Account Domain not found>R
Everyone:R
Here is cacls after +w/-w:
Z:\current\WINDOWS\main\20100908131458_ZDESKTOP\ZimbraBuild\templates\BUILD_ISYNC_template
<Account Domain not found>(special access:)
STANDARD_RIGHTS_ALL
DELETE
READ_CONTROL
WRITE_DAC
WRITE_OWNER
SYNCHRONIZE
STANDARD_RIGHTS_REQUIRED
FILE_GENERIC_READ
FILE_GENERIC_EXECUTE
FILE_READ_DATA
FILE_READ_EA
FILE_EXECUTE
FILE_READ_ATTRIBUTES
FILE_WRITE_ATTRIBUTES
<Account Domain not found>R
Everyone:R
>> This behavior is quite bizarre. I should be able to delete the
>> files I created with the "-f" option to "rm".
>
> Well, in theory, yes. However, it's possible that your CIFS drive
> has semantics which disallow this with the original ACL for some
> reason. Can you pleae run `strace -o rm.trace rm some_file' on a
> file which has the original ACL (before the chmod call) and send the
> rm.trace file?
Done. I've provided strace output from both rm <FILE> and rm -f <FILE>
Let me know if there is anything else I can provide.
--Quanah
--
Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra :: the leader in open source messaging and collaboration
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rm.trace.gz
Type: application/octet-stream
Size: 17233 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20100910/f1659092/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rmf.trace.gz
Type: application/octet-stream
Size: 12957 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20100910/f1659092/attachment-0001.obj>
-------------- next part --------------
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list