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