我知道 Linux 对于用户可以加入的组的数量有一些限制。我发现每个用户有16个组,并且取决于Linux内核。但是,单个组中的用户数量是否有限制?例如,如果我在 Debian 10 中创建一个“book”组,我可以向该组添加多少个用户——或者——我可以同时在多少个用户之间共享该组?
答案1
16 组限制与内核无关,而是与 NFS 有关。在 Linux 上,从内核 2.6.3 开始,进程最多可以有 65,536 个补充组。
另一方面,除了最大组标识符施加的限制之外,内核或 C 库设置的组中的用户数量没有任何限制(因此2 32内核中,其中 gids 由无符号 s 表示int
)。这库函数和数据结构用于访问组,支持无限数量的用户。底层数据存储可能会设置限制(例如/etc/passwd
在 LDAP 中),但我不知道/中有任何内容(除了磁盘存储之外,可能会降低大量用户的性能)/etc/group
。
在这两种情况下,应用程序在面对具有大量组的用户或具有大量用户的组时都可能出现错误。看LXC 中的这个例子,这意味着,当太多用户属于同一组时,没有无根容器可以获取网络访问权限(这要归功于AB用于提醒和指针)。