On Dec  5 13:40, Corinna Vinschen via Cygwin wrote:
> On Dec  5 09:28, Marco Atzeri via Cygwin wrote:
> > On 04/12/2025 21:50, Brian Inglis via Cygwin wrote:
> > > On 2025-12-04 08:00, Jon Turney via Cygwin wrote:
> > > > Actually, I think this is a shortcoming of the cygwin version of newgrp.
> > > > The SUS description [1] of newgrp allows a numeric group id to be
> > > > specified.
> > > > (In fact, it includes the clarifying remark "If group is a non-
> > > > negative numeric string and exists in the group database as a group
> > > > name, the numeric group ID associated with that group name will be
> > > > used as the group ID", which suggests a, um, straightforward
> > > > implementation)
> > > > But it seems that our implementation only currently handles a group
> > > > name (See [2]).
> > > > [1] https://pubs.opengroup.org/onlinepubs/7908799/xcu/newgrp.html
> > > 
> > > That's OG SUSV2 1997 - current is at:
> > > 
> > >      
> > > https://pubs.opengroup.org/onlinepubs/9799919799/utilities/newgrp.html
> > > 
> > > > [2] 
> > > > https://cygwin.com/cgit/newlib-cygwin/tree/winsup/utils/newgrp.c#n166
> 
> Shouldn't be too hard to add to our newgrp(1).

Uhm... there's a problem here.

Right now, our newgrp is commandline compatible with Linux' newgrp from
shadow-utils:

- A single '-' reinitializes the environment.
- The group must be given as name, not as GID.

This is not commandline compatible with the POSIX definition:

- A '-l' reinitializes the environment.
- The group may be given as name or GID.

I can't just change it to POSIX compatible because this potentially
breaks Linux compatibility.

What we could do is to check the POSIXLY_CORRECT environment variable
and switch the identity to POSIX if this variable is set.

Make sense?


Corinna

-- 
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