This is the mail archive of the
mailing list for the Cygwin project.
Re: SMBFS mount's file cannot be made executable
Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin writes:
>> If it's related to the ACL handling then it should start working when
>> you remove the ACL on the file with 'setfacl -kb ...'
> There are no special ACLs set on the file (that was just produced by
> GCC from the source code, see my first email).
You earlier showed this:
> $ ls -l a.exe
> -rw-rw-r--+ 1 lavr cppcore 157753 Aug 13 08:20 a.exe
See the '+' at the end of the modes? That's telling you that there is
an ACL added to the file and the modes are the result of combining thje
actual mode bits with the ACL. As you said, gcc won't add any ACL by
itself, so these ACL are the result of inheritable / default ACL.
> But I am now convinced that the problem is _entirely_ in Cygwin's corner:
Maybe, but we'd still need to know how to get to the result you're seeing.
> When I open that file's the "Properties->Security" Windows tab, I can
> see that my permissions are "Read" and "Write", yet "Read & Execute"
> is NOT checked. When I check it, I see that the file becomes
> executable (the "x" bit) from both Cygwin shell and on the Linux side,
> too. And after that, I can execute the file from the Cygwin shell.
I hope it's clear to you that the permissions you see on this tab have
nothing to do with the POSIX mode bits you're trying to set from Cygwin.
> So what happens is that when "chmod" (or "creat" with a permission
> mask) is called, Cygwin does not honor the "x" bit(s) and does not
> convert it to a corresponding proper ACL for the Windows mounted
> filesystem (and that ACL, in turn, would have been then sent to SMBD
> to get converted there back to the "x" bit in the Unix world). Once
> the "x" is there, Windows(via SMBD) obviously allows execution of the
> image. Here's a related "bug":
Most often that is the result of an inherited ACL mask that clears that
bit. Correcting either the default ACL or removing it should then make
that problem go away. Default ACL are associated with the parent
directory and you're unlikely to be able to change the parent directory
modes if it's the root of a file system exported from a filer. Try
again in a subdirectory and clear the default ACL with 'setfacl -kb' on
that directory before you start doing anything there.
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
Factory and User Sound Singles for Waldorf Blofeld:
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple