This is the mail archive of the
mailing list for the Cygwin project.
RE: NTFS write-protect flag translation (tar? rsync?) only one-way?
From: Cygwin On Behalf Of Larry Hall (Cygwin)
Sent: Wednesday, 6 April 2011 11:04 AM
Subject: Re: NTFS write-protect flag translation (tar? rsync?) only one-way?
>On 4/5/2011 8:35 PM, Christian Gelinek wrote:
>> From: Cygwin On Behalf Of Larry Hall (Cygwin)
>>> On 4/5/2011 3:36 AM, Christian Gelinek wrote:
>>>> It appears that when tar reads files for adding to archives, it
>>>> correctly interprets the Windows-set "R" attribute, which is also seen by
>>>> ls under Cygwin. After extracting the files using tar though, only
>>>> Cygwin's ls command seems to be aware of the read-only attribute; the
>>>> attrib command (as well as Explorer and other Windows-apps) see and
>>>> handle the file as being writeable.
>>> The read-only attribute is a "Windows" thing. Cygwin's utilities focus on
>>> supporting POSIXy/Linuxy ways of doing things. You can't expect Cygwin's
>>> tools to manage all of Window's permission facilities in the same way as
>>> Windows does. The read-only flag is one case where you'll see a divergence.
>>> If you need that flag set, you'll need your own wrapper to set it based on
>>> the POSIX (or ACL) permissions. The read-only attribute really is quite
>>> anachronistic though IMO. It conflicts with the more powerful ACLs. If
>>> you have the option, it's better not to use that flag.
>> IMO the behaviour is inconsistent if the flag is used/interpreted on one (the
>> read) operation but NOT being written/changed on the other (write) operation.
>> My approach would be either drop it completely or support it on both ends
>> (the preferred option).
>Actually, the read-only attribute is not used by Cygwin to determine POSIX
According to what I have seen, the command
attrib +R wp.txt
changes ONLY the read-only flag - when I look at the Security page of the file properties dialog in Windows Explorer, the ACLs are not modified by attrib. Still Cygwin would see the file as read-only after the attrib call (please see my original post for the complete sequence of commands).
>> By the looks of it (see
>> http://sourceware.org/ml/cygwin/2002-05/msg00317.html), this problem has
>> been addressed and potentially solved before, so I wonder if something is
>> broken here.
>No, nothing is broken. Things have changed since 2002. If you want the gory
>details, you can look in the email archives. The short of it is, making
>read-only, Windows ACLs, and POSIX permissions all agree is overly
>complicated. So we've dropped read-only support now.
But AFAIK (see above) only for write operations.
I also agree that there is a complicating overlap between the read-only attribute and the ACLs. Nevertheless, most Windows programs honour the read-only flag and Explorer can display a column listing such attributes as opposed to effective ACL permissions.
The Samba server struggles with similar problems, as it also has to translate between POSIX and Windows permissions. Samba's solution is to emulate ACLs AND the read-only flag. It would be interesting how Samba treats changes to the read-only flag done by Windows, how it translates them to Linux permissions and back to Windows (does it change ACLs as well?). When I've got some time, I'll look into this.
>> The background to all this is that I am using RCS (I know, almost as
>> anachronistic as the read-only attribute, but that's dictated by my
>> workplace) under both Windows and Linux and RCS relies heavily on the
>> read-only attribute of files to be correct. IMO, it wouldn't hurt if the
>> Cygwin tools would write the Windows read-only attribute when they create a
>> Cygwin read-only file?
>Cygwin has a package for RCS. Perhaps that could solve your problem?
Thanks for pointing that out, I will have a look at that as well.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple