On 2025-06-16 03:17, Lionel Cons via Cygwin wrote:
On Fri, 13 Jun 2025 at 21:52, Brian Inglis via Cygwin <cygwin@cygwin.com> wrote:
On 2025-06-13 06:09, Lionel Cons via Cygwin wrote:
/usr/bin/setfacl is broken in 3.7.0-0.127.g2029784e05d9
my testcase:
lionel$ uname -a
CYGWIN_NT-10.0-19045 halcyonrenard17 3.7.0-0.127.g2029784e05d9.x86_64
2025-06-10 12:15 UTC x86_64 Cygwin
lionel$ mkdir nfstmp1
ionel$ setfacl -m g::rwx nfstmp1
setfacl: Permission denied
ionel$ setfacl -m g:None:rwx nfstmp1
setfacl: Permission denied
This was working in Cygwin 3.5
No changes have been made to the utility for five years,
Are you sure? Isn't this tool part of coreutils?
$ cygcheck -f /usr/bin/{g,s}etfacl
cygwin-3.6.1-1
cygwin-3.6.1-1
Apparently mainly based on:
https://man.freebsd.org/cgi/man.cgi?query=setfacl&sektion=1
http://www.trustedbsd.org/acls.html
also Linux uses:
https://man7.org/linux/man-pages/man1/setfacl.1.html
http://savannah.nongnu.org/projects/acl
http://savannah.nongnu.org/bugs/?group=acl
"ACL File Utilities"
as we have had discussions about man pages missing from the man-pages-linux
packages and sources for alternates we could provide, and whether that would be
desirable and adequate.
but a lot of changes
have been made to the DLL since 3.5.
Could you please install current stable cygwin 3.6.3, retest and report,
lionel$ uname -a
CYGWIN_NT-10.0-19045 halcyonrenard17 3.6.3-1.x86_64 2025-06-05 11:45
UTC x86_64 Cygwin
lionel$ setfacl --version
setfacl (cygwin) 3.6.3
POSIX ACL modification utility
Copyright (C) 2000 - 2025 Cygwin Authors
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
## testing with a file:
lionel$ rm -f myfile && touch myfile && setfacl -m g::rwx myfile
# works
## testing with a dir:
lionel$ rm -Rf mydir && mkdir mydir && setfacl -m g::rwx mydir
setfacl: Permission denied
So in Cygwin 3.6.3 setfacl for files works, but not for dirs
Thanks for doing that.
One thing we have to watch for is to ensure that DACLs (Default ACLs) are set on
directories so files and subdirectories are accessible, for example:
dacl=d:u::rwx,d:g::r-x,d:o::r-x
...
setfacl -m$dacl $dir
although you would normally also set regular ACLs at the same time to be sure.
So your directory ACLs depend on its parent's DACLs, but there is still an issue
there.
I too get:
$ setfacl -m g::rwx test
setfacl: Permission denied
but:
$ chmod -c g+rwx test # works
mode of 'test' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
$ setfacl -m g::rwx test # works but changes nothing
to try
and narrow down the issue occurrence to changes in major version 3.6 or 3.7, or
better to minor versions if you have the space and time?
How can I install each Cygwin minor version (not just the Cygwin
*.dll, I mean EVERYTHING including dependencies)?
Maybe just cygwin (DLL and utilities) package 3.5.7 and 3.6.0 if you have time?
P.S.: Testing /usr/bin/setfacl.exe is not part of the CI, right?
Apparently not yet for cygwin ;^>
--
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