On 2025-03-29 12:14, Brian Inglis via Cygwin wrote:
On 2025-03-29 08:02, Bruno Haible via Cygwin wrote:
Corinna Vinschen wrote:
Regarding what acl_extended_file() does, there is the man page by
Andreas Grünbacher:
https://www.kernel.org/doc/man-pages/online/pages/man3/acl_extended_file.3.html
Gnulib is not the only user of acl_extended_file(); therefore I would
suggest that Cygwin should follow that man page — regardless of Gnulib.

It already does!  The acl_extended_file() change for directories we just
talked about will actually be a deviation from Andreas' man page.

OK, then Cygwin's acl_extended_file should not change.

An ACL implementation that shows a '+' sign on 99.9% of the files is
not useful. A user can't practically run 'getfacl' on all files and
understand the result. In other words, ACLs need to be the special case,
not the common case.

Yeah, that's a good point.  If the user is beaten with a stick with
a '+' sign written on it, it's basically no help.

Glad to have an agreement here. Then, gnulib won't change: it will not
use Cygwin's acl_extended_file() function and instead use the function
acl_access_nontrivial(), defined in Gnulib.

But your question was specificially about files created in the above
dir:

- Files created by a Cygwin process inside that dir will have only the
   usual three ACL entries constituting standard POSIX permission bits,
   combined with their umask, i.e.:

   $ cd /tmp/glo1FkFx/tmpdir0
   $ umask
   22
   $ touch foo
   $ getfacl foo
   # file: foo
   # owner: corinna
   # group: vinschen
   user::rw-
   group::r--
   other::r--

- Files created by non-Cygwin processes inside that dir will have by
   default(*) only the usual three ACL entries constituting standard
   POSIX permission bits, but there's no umask handling in the non-Cygwin
   process, i.e.

   $ cd /tmp/glo1FkFx/tmpdir0
   $ cmd
   C:\cygwin64\tmp\glQatIoG\tmpdir0>echo foo > bar
   C:\cygwin64\tmp\glQatIoG\tmpdir0>exit
   $ getfacl bar
   # file: bar
   # owner: corinna
   # group: vinschen
   user::rwx
   group::r-x
   other::r-x

   (*) Most Windows processes rely entirely on the permissions in
   the ACLs and the Windows ACL inheritance rules.

Does that answer your question?

Thanks for explaining. This matches my earlier experiments on Cygwin;
see these comments in the acl_access_nontrivial function:
https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/acl- internal.c;h=6c50feacbb811da92da9a68d544132d87ad8dbf3;hb=HEAD#l80

So, in summary, I too see the action item (regarding the behaviour
of 'ls' on symlinks) more on the coreutils side.

Please reiterate what you see needing to be patched in coreutils 9.6 - just your patch 0001-file-has-acl-port-symlink-code-to-Cygwin.patch or something else?

Dogfooding coreutils 9.6 since release - now also under Cygwin 3.6 - permissions on build symlinks:

$ uname -srvmo
CYGWIN_NT-10.0-19045 3.6.0-1.x86_64 2025-03-18 17:01 UTC x86_64 Cygwin
$ ls --version
ls (GNU coreutils) 9.6
Packaged by Cygwin (9.6-1)
Copyright (C) 2025 Free Software Foundation, Inc.
...

Sorry - will make more sense with symlink entry:

 $ ls -l coreutils-9.6-1.x86_64/build/GNUmakefile | cyg-sanitize-output.sed
lrwxrwxrwx 1 $USER None 71 Feb 10 14:45 coreutils-9.6-1.x86_64/build/GNUmakefile -> /usr/src/coreutils/coreutils-9.6-1.x86_64/src/coreutils-9.6/GNUmakefile

[and if I cc Bruno and bug-gnulib]

$ lsp coreutils-9.6-1.x86_64/build/GNUmakefile # ls, getfacl, icacls
-rw-r--r-- 1 $USER None 4589 Jan 17 07:46 .../build/GNUmakefile

# file: coreutils-9.6-1.x86_64/build/GNUmakefile
# owner: $USER
# group: None
user::rw-
group::r--
other::r--

.../src/coreutils-9.6/GNUmakefile    $HOSTNAME/$USER:(R,W,D,WDAC,WO)
                     $HOSTNAME/None:(R)
                     Everyone:(R)

Successfully processed 1 files; Failed processing 0 files
--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                -- Antoine de Saint-Exupéry

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to