public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: Mario Emmenlauer <mario@emmenlauer.de>
Cc: cygwin@cygwin.com
Subject: Re: test -r or -x always return false on an NFS mount?
Date: Tue, 13 Oct 2020 20:36:50 +0200	[thread overview]
Message-ID: <20201013183650.GW26704@calimero.vinschen.de> (raw)
In-Reply-To: <c5adbabd-f6c1-7a09-2af2-fdd819b76cdf@emmenlauer.de>

On Oct  6 18:10, Mario Emmenlauer wrote:
> 
> Dear Andrey,
> 
> On 06.10.20 17:46, Andrey Repin wrote:
> > Greetings, Mario Emmenlauer!
> > 
> >> thanks for the awesome Cygwin, its really great!
> > 
> >> Everything seems to work quite well, and in `ls -la` I can see the
> >> file permissions and user and group entries. But when using `test`
> >> to check for read (`test -r`) or execute permissions (`test -x`), it
> >> always returns false, even for readable files. `ls` on the other hand
> >> shows the permissions correctly, and `cat`ing the files works without
> >> problems.
> > 
> > This is a known issue. For years known.
> > test only guess -r/-w/-x results based on permissions as it sees them.
> > But it do not actually try to read/write/execute the subject, which, as you
> > can imagine, may lead to all sorts of false positives/negatives on filesystems
> > with less than trivial access control setups.
> > In other words, don't test for rwx if you can avoid it. The results MAY be
> > wrong.
> 
> 
> Ok, this explains a lot, and I almost guessed as much! But can I ask,
> do you happen to know why `ls -l` shows the "correct" permissions
> including 'r' and 'x'? It seems `ls` has some magic that `test` is
> lacking? And I can not imagine that `ls` would try to open every
> file, or does it?.
> 
> So could this "magic" be ported from `ls` to `test`?

There's something fishy in your environment.  NFS permissions from NFS
shares mounted via Microsoft's NFSv3 are read using some internal
function I got hinted at by the MSFT NFS guys at one point.  This
information is then exported as mode bits by Cygwin's stat(2) and used
accordingly by Cygwin's access(2).

Having said that, there's *no* magic at all in the user space
applications other than using Cygwin's stat(2) and access(2) functions.

Consequentially, using Cygwin's ls(1) or test(1) from coreutils, the
results are the expected ones in both cases; just tried it myself, just
to be sure.

So, what's fishy?  I don't know, but maybe you're using a non-Cygwin
test(1) accidentally?


Corinna

  reply	other threads:[~2020-10-13 18:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-22 20:14 Mario Emmenlauer
2020-10-01 10:22 ` Mario Emmenlauer
2020-10-06  1:41   ` Ken Brown
2020-10-06 15:46 ` Andrey Repin
2020-10-06 16:10   ` Mario Emmenlauer
2020-10-13 18:36     ` Corinna Vinschen [this message]
2020-10-13 19:00       ` Mario Emmenlauer
2020-10-14  8:28         ` Corinna Vinschen
2020-10-14  9:06           ` Mario Emmenlauer
2020-10-14 11:50             ` Corinna Vinschen
2020-10-14 14:57               ` Mario Emmenlauer
2020-10-15  8:16                 ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201013183650.GW26704@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin@cygwin.com \
    --cc=mario@emmenlauer.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).