public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Editors set x-bit (sometimes)
@ 2016-12-13 10:39 Ronald Fischer
  2016-12-13 13:54 ` Ken Brown
  0 siblings, 1 reply; 10+ messages in thread
From: Ronald Fischer @ 2016-12-13 10:39 UTC (permalink / raw)
  To: cygwin

Does anybody have an explanation for the following strange phenomenon?

When I create Ruby files (*.rb) with an, the files end up with the x-bit
set with some editors, while this does not happen with some other
editors. This is annoying, because when I use git to put the file in a
repository, and the repository is later read on Linux, the incorrect
x-bit is applied there too. The text editors where this happens, do so
consistently, as long as the file is below my Ruby HOME directory. It
does not happen, if I store the file outside my $HOME, say in c:\tmp. 

Since a few editors do not show this behaviour, one might blame the way
the editor creates the file. However, these text editors were not
written with a Cygwin environment in mind, and Windows doesn't have the
concept of an "executable bit", and it happens only if I create files
below my Cygwin Home, so I think this happens when Cygwin tries to
"infer" the x-bit from some other file properties.

I am aware that Cygwin has a policy to infer, whether the x-bit should
be set or not set. Nevertheless, this does not apply in my case:

- The files don't have a #! line
- I don't have a file association on Windows which would mark a .rb file
as being run by Ruby
- My file system is ntfs

BTW, my CYGWIN environment variable is set to just 'nodosfilewarning'.
I'm using Windows 7 and the 64-bit-version of Cygwin.

- Ronald



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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-13 10:39 Editors set x-bit (sometimes) Ronald Fischer
@ 2016-12-13 13:54 ` Ken Brown
  2016-12-13 15:20   ` Ronald Otto Valentin Fischer
  0 siblings, 1 reply; 10+ messages in thread
From: Ken Brown @ 2016-12-13 13:54 UTC (permalink / raw)
  To: cygwin

On 12/13/2016 5:39 AM, Ronald Fischer wrote:
> Does anybody have an explanation for the following strange phenomenon?
>
> When I create Ruby files (*.rb) with an, the files end up with the x-bit
> set with some editors, while this does not happen with some other
> editors. This is annoying, because when I use git to put the file in a
> repository, and the repository is later read on Linux, the incorrect
> x-bit is applied there too. The text editors where this happens, do so
> consistently, as long as the file is below my Ruby HOME directory. It
> does not happen, if I store the file outside my $HOME, say in c:\tmp.
>
> Since a few editors do not show this behaviour, one might blame the way
> the editor creates the file. However, these text editors were not
> written with a Cygwin environment in mind, and Windows doesn't have the
> concept of an "executable bit", and it happens only if I create files
> below my Cygwin Home, so I think this happens when Cygwin tries to
> "infer" the x-bit from some other file properties.

Does this help?

    https://cygwin.com/faq/faq.html#faq.using.same-with-permissions

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-13 13:54 ` Ken Brown
@ 2016-12-13 15:20   ` Ronald Otto Valentin Fischer
  2016-12-13 19:03     ` Brian Inglis
  0 siblings, 1 reply; 10+ messages in thread
From: Ronald Otto Valentin Fischer @ 2016-12-13 15:20 UTC (permalink / raw)
  To: Ken Brown, cygwin


> Does this help?
> 
>     https://cygwin.com/faq/faq.html#faq.using.same-with-permissions

While interesting, it seems to describe a different phenomenon.
Actually, when I create files by Cygwin tools only (touch, nano, ....),
the access rights are always correct. Indeed, even after removing the
extended ACL entries - as was suggested in the FAQ -, the problem still
appears.

However, I have a new finding: When I create a file from a CMD.EXE
command line, by i.e.

    echo xx > abc.rb

the access rights *do* have the x-bits set! This is reproducible, but
only when the file which was created, is below my Cygwin tree! I agree
that this smells a lot like an extended ACL issue, but as I said, 
setacl -b provided no help.

Ronald


-- 
Ronald Fischer <ronald.fischer@fusshuhn.de>
http://www.fusshuhn.de/


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-13 15:20   ` Ronald Otto Valentin Fischer
@ 2016-12-13 19:03     ` Brian Inglis
  2016-12-13 19:47       ` Achim Gratz
  0 siblings, 1 reply; 10+ messages in thread
From: Brian Inglis @ 2016-12-13 19:03 UTC (permalink / raw)
  To: cygwin

On 2016-12-13 08:20, Ronald Otto Valentin Fischer wrote:
>On 2016-12-13 10:57, Ken Brown wrote:
>> Does this help?
>>     https://cygwin.com/faq/faq.html#faq.using.same-with-permissions
> While interesting, it seems to describe a different phenomenon. 
> Actually, when I create files by Cygwin tools only (touch, nano,
> ....), the access rights are always correct. Indeed, even after
> removing the extended ACL entries - as was suggested in the FAQ -,
> the problem still appears.
> However, I have a new finding: When I create a file from a CMD.EXE 
> command line, by i.e.
>     echo xx > abc.rb
> the access rights *do* have the x-bits set! This is reproducible,
> but only when the file which was created, is below my Cygwin tree!
> I agree that this smells a lot like an extended ACL issue, but as
> I said, setacl -b provided no help.

Remove DACLs Default ACLs also on directories using: 
	setfacl -bk ~/.[!.]* ~/.[!.]*/**/ ~/.[!.]*/**/* \
			/???/**/ /???/**/* /sbin/ /sbin/*
- that takes a while to run, and you may get a few anonymous
	setfacl: Permission denied
messages - paths in the messages would have been nice here!

Be careful *NOT* to hit Windows directories including your Windows 
home directory, or any other Windows directories, native symlinks, 
native hardlinks, junctions, or file types such as Windows .lnk, 
.URL, etc. where Windows may rely on the DACLs, ACLs, and attributes 
for proper handling.

I don't know that removing them would cause problems, but I don't 
trust Windows to DTRT if it doesn't see what it expects, or DTRT in 
future if changes are made and the expected settings are not still 
in place.

-- 
-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-13 19:03     ` Brian Inglis
@ 2016-12-13 19:47       ` Achim Gratz
  2016-12-13 20:15         ` Henry S. Thompson
  2016-12-14 13:37         ` Nellis, Kenneth
  0 siblings, 2 replies; 10+ messages in thread
From: Achim Gratz @ 2016-12-13 19:47 UTC (permalink / raw)
  To: cygwin

Brian Inglis writes:
> Remove DACLs Default ACLs also on directories using: 
> 	setfacl -bk ~/.[!.]* ~/.[!.]*/**/ ~/.[!.]*/**/* \
> 			/???/**/ /???/**/* /sbin/ /sbin/*
> - that takes a while to run, and you may get a few anonymous
> 	setfacl: Permission denied
> messages - paths in the messages would have been nice here!
>
> Be careful *NOT* to hit Windows directories including your Windows 
> home directory, or any other Windows directories, native symlinks, 
> native hardlinks, junctions, or file types such as Windows .lnk, 
> .URL, etc. where Windows may rely on the DACLs, ACLs, and attributes 
> for proper handling.

Which is why you shouldn't use the above, but have find produce a list
of the files to be changed and when you are sure it doesn't contain any
stray things process them either via the -exec + option in find or
piping into xargs (the latter is slightly less efficient and you have to
do -print0/-0, but I tend to get it right more easily then the -exec
stuff.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-13 19:47       ` Achim Gratz
@ 2016-12-13 20:15         ` Henry S. Thompson
  2016-12-14 13:37         ` Nellis, Kenneth
  1 sibling, 0 replies; 10+ messages in thread
From: Henry S. Thompson @ 2016-12-13 20:15 UTC (permalink / raw)
  To: cygwin

I find I can reproduce the OP's observations, and the most recent advice
doesn't fix it (although it changes the symptoms):

From mintty/bash:

  639> cd /tmp
  641> ls -ld .
  drwxrwxr-x+ 1 ht None 0 Dec 13 19:55 ./
  640> getfacl .
  # file: .
  # owner: ht
  # group: None
  user::rwx
  group::rwx
  other:r-x
  default:user::rwx
  default:group::r-x
  default:other:r-x

  642> touch x3
  643> ls -l x3
  -rw-r--r-- 1 ht None 0 Dec 13 19:59 x3

Switch to CMD (not elevated):

  C:\Users\ht>cd ..\..\C64\tmp
  C:\C64\tmp>echo > x2
  C:\C64\tmp>

Back to mintty/bash:

  644> ls -l x2
  -rwxr-xr-x 1 ht None 13 Dec 13 20:00 x2*

OK, try the advice

  645> setfacl -bk .
  649> getfacl .
  # file: .
  # owner: ht
  # group: None
  user::rwx
  group::rwx
  other:r-x

  646> echo > y3
  647> ls -l y3
  -rw-r--r-- 1 ht None 1 Dec 13 20:01 y3

Over to CMD:

  C:\Users\ht>cd ..\..\C64\tmp
  C:\C64\tmp>echo > y2
  C:\C64\tmp>

And back to mintty/bash:

  648> ls -l y2
  -rwxrwx---+ 1 ht None 13 Dec 13 20:02 y2*
  650> ls -ld .
  drwxrwxr-x 1 ht None 0 Dec 13 20:02 ./
  652> setfacl -bk y2
  653> ls -l y2
  -rwx------ 1 ht None 13 Dec 13 20:02 y2*

Windows 10 Professional N Ver 10.0 Build 10586
 3229k 2016/08/31 C:\C64\bin\cygwin1.dll
    Cygwin DLL version info:
        DLL version: 2.6.0

ht
-- 
       Henry S. Thompson, School of Informatics, University of Edinburgh
      10 Crichton Street, Edinburgh EH8 9AB, SCOTLAND -- (44) 131 650-4440
                Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                       URL: http://www.ltg.ed.ac.uk/~ht/
 [mail from me _always_ has a .sig like this -- mail without it is forged spam]

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: Editors set x-bit (sometimes)
  2016-12-13 19:47       ` Achim Gratz
  2016-12-13 20:15         ` Henry S. Thompson
@ 2016-12-14 13:37         ` Nellis, Kenneth
  2016-12-14 17:35           ` Andrey Repin
  2016-12-14 18:23           ` Achim Gratz
  1 sibling, 2 replies; 10+ messages in thread
From: Nellis, Kenneth @ 2016-12-14 13:37 UTC (permalink / raw)
  To: Achim Gratz, cygwin

> From: Achim Gratz 
> .. the latter is slightly less efficient and you have to
> do -print0/-0, but I tend to get it right more easily then the -exec
> stuff.

Really? I always thought the opposite. With -exec, doesn't
find invoke the command for each single found object? While xargs 
allows a single command to operate on a whole slew of objects.

For example:
find ... -exec pgm {} \;
executes pgm separately for each found object while
find ... | xargs pgm
invokes pgm only once for as many files as will fit on the 
command line, which is quite a few.

If I'm wrong about this, please share.

Or, perhaps we are talking about commands that only take
a single object. In that case, you would need to say
xargs -n1
in which case, I agree, it is less efficient.

--Ken Nellis

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-14 13:37         ` Nellis, Kenneth
@ 2016-12-14 17:35           ` Andrey Repin
  2016-12-14 18:23           ` Achim Gratz
  1 sibling, 0 replies; 10+ messages in thread
From: Andrey Repin @ 2016-12-14 17:35 UTC (permalink / raw)
  To: Nellis, Kenneth, cygwin

Greetings, Nellis, Kenneth!

>> From: Achim Gratz 
>> .. the latter is slightly less efficient and you have to
>> do -print0/-0, but I tend to get it right more easily then the -exec
>> stuff.

> Really? I always thought the opposite. With -exec, doesn't
> find invoke the command for each single found object?

Depends, how do you set the find, and what the net effect you wan to achieve.

> While xargs allows a single command to operate on a whole slew of objects.

Which boils down to executing command every time for each argument.

> For example:
> find ... -exec pgm {} \;
> executes pgm separately for each found object

What about

  find ... -exec pgm '{}' +

?

> while
> find ... | xargs pgm
> invokes pgm only once for as many files as will fit on the
> command line, which is quite a few.

> If I'm wrong about this, please share.

It really depends on what you are doing with find.

find . -iname *.php -execdir grep -qP '(?<=function )funcname' '{}' \; -print

is one thing, but

find . -date +7 -exec mv -t /dir '{}' +

is completely another.

> Or, perhaps we are talking about commands that only take
> a single object. In that case, you would need to say
> xargs -n1
> in which case, I agree, it is less efficient.


-- 
With best regards,
Andrey Repin
Wednesday, December 14, 2016 20:13:08

Sorry for my terrible english...


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Editors set x-bit (sometimes)
  2016-12-14 13:37         ` Nellis, Kenneth
  2016-12-14 17:35           ` Andrey Repin
@ 2016-12-14 18:23           ` Achim Gratz
  2016-12-14 20:28             ` Nellis, Kenneth
  1 sibling, 1 reply; 10+ messages in thread
From: Achim Gratz @ 2016-12-14 18:23 UTC (permalink / raw)
  To: cygwin

Nellis, Kenneth writes:
> Really? I always thought the opposite. With -exec, doesn't
> find invoke the command for each single found object? While xargs 
> allows a single command to operate on a whole slew of objects.

I said "-exec +", although I concur it was too easy to miss.

> For example:
> find ... -exec pgm {} \;

Try replacing the "\;" with "+", depending on whether pgm can deal with
multiple arguments.

> executes pgm separately for each found object while
> find ... | xargs pgm
> invokes pgm only once for as many files as will fit on the 
> command line, which is quite a few.

Which is what

find ... -exec pgm {} +

will do, without piping the data to xarg and without you having to
remember that you really, really wanted to say

find … -print0 | xargs -0 pgm

unless you already know that there are no spaces or funny characters
anywhere in your filenames.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldUserWavetables

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: Editors set x-bit (sometimes)
  2016-12-14 18:23           ` Achim Gratz
@ 2016-12-14 20:28             ` Nellis, Kenneth
  0 siblings, 0 replies; 10+ messages in thread
From: Nellis, Kenneth @ 2016-12-14 20:28 UTC (permalink / raw)
  To: Achim Gratz, cygwin

From: Achim Gratz 
> I said "-exec +", although I concur it was too easy to miss.

Indeed, I overlooked the "+" and was unfamiliar with that option
to find. Glad I asked. Learned something today. Thanx for the 
clarification. ☺

--Ken Nellis

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


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-12-14 20:28 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-13 10:39 Editors set x-bit (sometimes) Ronald Fischer
2016-12-13 13:54 ` Ken Brown
2016-12-13 15:20   ` Ronald Otto Valentin Fischer
2016-12-13 19:03     ` Brian Inglis
2016-12-13 19:47       ` Achim Gratz
2016-12-13 20:15         ` Henry S. Thompson
2016-12-14 13:37         ` Nellis, Kenneth
2016-12-14 17:35           ` Andrey Repin
2016-12-14 18:23           ` Achim Gratz
2016-12-14 20:28             ` Nellis, Kenneth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).