bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin


From: Bruno Haible
Subject: Re: acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin
Date: Thu, 06 Jun 2024 07:05:02 +0200

I did:
>       acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin.
>       * lib/acl-internal.c: Include <sys/types.h>, <grp.h>, <string.h>.
>       (acl_access_nontrivial): On Cygwin, ignore group:SYSTEM:*,
>       group:Administrators:*, mask::* entries.

This fixed the problem on my Cygwin installation. On the GitHub CI machines,
group:Users:* is occurring as well, and needs to be ignored too.


2024-06-06  Bruno Haible  <bruno@clisp.org>

        acl-permissions: Fix test-file-has-acl-2.sh failure on Cygwin.
        * lib/acl-internal.c (acl_access_nontrivial): On Cygwin, ignore also
        group:Users:* entries.

diff --git a/lib/acl-internal.c b/lib/acl-internal.c
index 9ebb6e544b..ae5398306a 100644
--- a/lib/acl-internal.c
+++ b/lib/acl-internal.c
@@ -89,6 +89,14 @@ acl_access_nontrivial (acl_t acl)
              group:Administrators:rwx
              mask::r-x
              other::r-x
+           or
+             user::rwx
+             group::r-x
+             group:SYSTEM:rwx
+             group:Administrators:rwx
+             group:Users:rwx
+             mask::rwx
+             other::r-x
          */
         case ACL_GROUP:
           {
@@ -105,9 +113,12 @@ acl_access_nontrivial (acl_t acl)
                     /* Ignore the ace if the group_sid is one of
                        - S-1-5-18 (group "SYSTEM")
                        - S-1-5-32-544 (group "Administrators")
-                       Cf. 
<https://learn.microsoft.com/en-us/windows/win32/secauthz/well-known-sids>  */
+                       - S-1-5-32-545 (group "Users")
+                       Cf. 
<https://learn.microsoft.com/en-us/windows/win32/secauthz/well-known-sids>
+                       and look at the output of the 'mkgroup' command.  */
                     ignorable = (strcmp (group_sid, "S-1-5-18") == 0
-                                 || strcmp (group_sid, "S-1-5-32-544") == 0);
+                                 || strcmp (group_sid, "S-1-5-32-544") == 0
+                                 || strcmp (group_sid, "S-1-5-32-545") == 0);
                   }
               }
             if (!ignorable)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]