delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/11/29/15:20:08

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_NEUTRAL
X-Spam-Check-By: sourceware.org
Message-ID: <4B12D769.9010408@cornell.edu>
Date: Sun, 29 Nov 2009 15:19:53 -0500
From: Ken Brown <kbrown AT cornell DOT edu>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: [ANNOUNCEMENT] [1.7] Updated: cygwin-1.7.0-67
References: <4B115A56 DOT 2060705 AT alice DOT it> <a13b5a590911281612r796d112bw1208a869433d2b88 AT mail DOT gmail DOT com> <20091129143220 DOT GA16680 AT calimero DOT vinschen DOT de> <a13b5a590911291159g5f837dbap614105a16adf41ce AT mail DOT gmail DOT com>
In-Reply-To: <a13b5a590911291159g5f837dbap614105a16adf41ce@mail.gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On 11/29/2009 2:59 PM, Robert Pendell wrote:
> On Sun, Nov 29, 2009 at 9:32 AM, Corinna Vinschen wrote:
>> On Nov 28 19:12, Robert Pendell wrote:
>>> On Sat, Nov 28, 2009 at 12:13 PM, Angelo Graziosi wrote:
>>>> Corinna Vinschen wrote:
>>>>> Fixes a few last-minute bugs:
>>>> Now, it seems that creating directories and files in some manner acquires an extra unexpected '+' flag. For example (from Cygwin.bat or MinTTY):
>>>>
>>>>
>>>> $ echo "Not " > foo1.txt
>>>>
>>>> $ echo "Not OK" > foo2.txt
>>>>
>>>> $ diff -Naur foo1.txt foo2.txt > foo.diff
>>>>
>>>> $ cp foo1.txt foo.txt
>>>>
>>>> $ patch foo.txt foo.diff
>>>> patching file foo.txt
>>>>
>>>> $ mkdir foo
>>>>
>>>> $ ls -lrtd foo*
>>>> -rw-r--r--  1 ...   5 28 Nov 18:02 foo1.txt
>>>> -rw-r--r--  1 ...   7 28 Nov 18:02 foo2.txt
>>>> -rw-r--r--  1 ... 124 28 Nov 18:02 foo.diff
>>>> -rw-r--r--+ 1 ...   7 28 Nov 18:03 foo.txt
>>>> drwxr-xr-x+ 1 ...   0 28 Nov 18:03 foo
>>>>
>>>> See the extra '+' for 'foo.txt' and 'foo'!
>>>>
>>>> I didn't note this with previous version -66, -65...
>>>>
>>>> Is it to be expected with -67?
>>>>
>> For the directory entry, yes.  These additional entries are default
>> entries for user, group, and other, generated by code which was already
>> in 1.5, and which had been removed from 1.7.0 back in January.
>> Unfortunately the removal of these entries result in potentially weird
>> permission settings on files within Cygwin-created directories in case
>> the files are created by non-Cygwin Windows tools.  Therefore I put them
>> back in -63.
>>
>> Apart from that, I don't see the extra permissions when creating the
>> patched foo.txt.  In other words, I can't reproduce it, at least not on
>> W7 under UAC.
>>
>>> Looks like there is a change in permissions with the file during the
>>> diff program run.  I might run a strace on it if someone tells me the
>>> appropriate command to do.  Anyways here is the relevant part with
>>> icacls before and after the diff command.
>>>
>>> shinji AT Balthasar ~
>>> $ icacls foo.txt
>>> foo.txt Balthasar\shinji:(R,W,D,WDAC,WO)
>>>         Balthasar\None:(R)
>>>         Everyone:(R)
>>>
>>> Successfully processed 1 files; Failed processing 0 files
>>>
>>> shinji AT Balthasar ~
>>>
>>> $ patch foo.txt foo.diff
>>> patching file foo.txt
>>>
>>> shinji AT Balthasar ~
>>> $ icacls foo.txt
>>> foo.txt Balthasar\shinji:(R,W,D,WDAC,WO)
>>>         Balthasar\None:(R)
>>>         Everyone:(R)
>>>         NT AUTHORITY\SYSTEM:(F)
>>>         BUILTIN\Administrators:(F)
>>>
>>> Successfully processed 1 files; Failed processing 0 files
>>>
>>> The 2 additional permission lines on the second icacls run is what
>>> causes the + to appear.
>> Indeed.  I just don't get how they are generated.  I know where they are
>> coming from (they are part of the default DACL of the user token), but I
>> don't understand how they get into the ACL of foo.txt.  For some reason
>> this doesn't occur in my testing.  I tried in a normal as well as in an
>> elevated shell, in a directory created with an older version of Cygwin
>> without default entries, as well as in a directory created with a newer
>> Cygwin with default entries.  In neither case I see the extra entries
>> for SYSTEM and Administrators.
>>
>> What are the permissions of the parent directory?  In other words,
>> what does "icacls ." print in this scenario?
> 
> Here is the output for icacls .
> 
> shinji AT Balthasar ~
> $ icacls .
> . Balthasar\shinji:(F)
>   Balthasar\None:(RX)
>   Everyone:(RX)

Maybe the extra permissions are coming from the ACLs on the temporary 
directory used by patch.  According to 'man patch', patch will use the 
first of the following variables that is set: TMPDIR, TMP, TEMP.  On my 
system, TMP and TEMP are both set in the Windows environment.

Ken

--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019