On 2/8/2023 4:05 PM, Norton Allen via Cygwin wrote: > I briefly raised this issue months ago and am trying to resolve it > again now. > > What I am trying to do is setup permissions so multiple users on one > machine can share full control over a particular directory hierarchy. > > On Linux I have usually been able to make things work with: > >    $ mkdir shared_dir >    $ chgrp shared_group shared_dir >    $ chmod g+ws shared_dir >    $ umask 2 > > User shells are configured with umask 2 so files they create have > group write. Users belong to shared_group. Files and subdirs created > under shared_dir are all in group shared_group. Files moved in retain > their original group, but the group members still have permission to > rename or delete them. > > The problem: > > $ chmod g+ws fails to set the 's' bit, and the resulting icacls output > does not contain any "NULL SID" entries. I am seeing the same problem > on (at least) two different systems setup by my organization. One of > these was just re-imaged and I installed Cygwin yesterday with no > customized configurations. AV is Windows Defender, but I suspect if > that were the culprit, there would have been more noise. > > I suspect there might be a group policy or something that is > interfering with Cygwin's strategy for implementing POSIX permissions. > I am pretty sure this worked correctly at some point in the past. > > Has anyone encountered this? > > Does group policy seem like a likely suspect? Anyone know which > policy(ies)? I think I might be able to get IT to cut me slack if I > knew what to ask for. > > I have also played with using setfacl directly to add permissions, but > as anyone who has read about Cygwin file permissions might guess, that > tends to have mixed/poor results, but I'd be open to any suggestions. > I don't actually have a system on which this is working to compare to, so I am not exactly sure how it is supposed to look when it's working correctly. The current behavior on  my new uncustomized installation: $ cd /home $ mkdir foo $ ls -ld foo drwxr-xr-x 1 nort None 0 Feb  9 12:20 foo $ chgrp testflight foo $ ls -ld foo drwxr-xr-x 1 nort testflight 0 Feb  9 12:20 foo $ chmod g+w foo $ ls -ld foo drwxrwxr-x 1 nort testflight 0 Feb  9 12:21 foo $ chmod g+s foo $ ls -ld foo drwxrwxr-x 1 nort testflight 0 Feb  9 12:21 foo Comparing getfacl and icacls output between the last two steps indicates that chmod g+s foo does exactly nothing. I ran strace on that and see that the chmod() call returns zero, but I don't know what's going inside that. Any idea what g+s should be doing? Any more/better information I can provide?