Sujet : Re: Supplemental groups count in Linux
De : vallor (at) *nospam* cultnix.org (vallor)
Groupes : comp.os.linux.advocacyDate : 09. Dec 2024, 05:06:37
Autres entêtes
Message-ID : <lrn8mdFd071U3@mid.individual.net>
References : 1 2
User-Agent : Pan/0.161 (Hmm2; be402cc9; Linux-6.12.3)
On Sun, 8 Dec 2024 19:23:50 -0500, DFS <
guhnoo-basher@linux.advocaca>
wrote in <
vj5daf$30up$2@dont-email.me>:
On 12/8/2024 12:12 AM, vallor wrote:
NGROUPS_MAX is the maximum supplemental group count for a Unix login.
On Linux, it is 65536.
But on MacOS and NetBSD, it is 16 -- which is the old standard.
Even worse, MacOS has all but filled the supplemental groups with
gid's for its own housekeeping:
$ for II in `id -G -n`; do echo $II ; done
staff
everyone
localaccounts
_appserverusr
admin
_appserveradm
_lpadmin
_appstore
_lpoperator
_developer
_analyticsusers
com.apple.access_ftp
com.apple.access_screensharing
com.apple.access_ssh
com.apple.access_remote_ae
$ for II in `id -G -n`; do echo $II ; done | wc -l
15
What a waste of space! On Linux:
$ for II in `id -G -n`; do echo $II ; done
scott
adm
cdrom
sudo
dip
plugdev
lpadmin
sambashare
wireshark
libvirt
nordvpn
$ for II in `id -G -n`; do echo $II ; done | wc -l
11
Conclusion: Linux is a modern OS, with much more administrative
flexibility. Complex user-sharing configurations can be set
up -- encompassing, if needed, thousands of supplemental
groups.
p.s. If someone could run this on Windows and report the value,
I'd much appreciate it:
- - %<- cut here - %<- - -
#include <stdio.h>
#include <limits.h>
int main (void)
{
printf("%d\n",NGROUPS_MAX);
return 0;
}
- - %<- cut here - %<- - -
D:\temp>tcc ngroups.c -o ngroups.exe
ngroups.c:6: error: 'NGROUPS_MAX' undeclared
No POSIX for you.
Seriously, though, try this:
#define _POSIX_
#include <stdio.h>
#include <limits.h>
int main (void)
{
printf("%d\n",NGROUPS_MAX);
return 0;
}
I know the answer though, because I downloaded tcc and looked
in limits.h -- which you could have done. (But I don't think
the value in there properly reflects the system value -- couldn't
find a prototype for getgroups(3).)
-- -v System76 Thelio Mega v1.1 x86_64 NVIDIA RTX 3090 Ti OS: Linux 6.12.3 Release: Mint 21.3 Mem: 258G "Windows: just another pane in the glass."