如何选择静态组ID?

如何选择静态组ID?

我的任务是将静态组 ID (gid) 重新分配给多个 Linux 服务器上存在的现有组名称。

例如,组名称foo当前存在于多个服务器上,但具有不同的 gid:

$ ssh server-1
$ getent group foo
foo:x:998:user1,user2
$ ssh server-2
$ getent group foo
foo:x:999:user2,user3

...鉴于上述情况,我的任务是为fooserver-1 和 server-2 上的组名称分配一个新的、唯一的 gid。

我发现以下文章描述了更改现有 GID:

  1. https://www.thegeekdiary.com/how-to- Correctly-change-the-uid-and-gid-of-a-user-group-in-linux/
  2. 更改特定组的gid

问题:如何确定一个“安全”数字用作新 gid?

例如,什么是干净/高效/正确的方法来确定我选择的新 gid 尚未在需要应用此更改的任何 PC 上使用?
还请告知在选择良好/可用/安全 gid 时是否还有其他因素/考虑因素。

答案1

/etc/login.defs这是从 RHEL 7.9 系统中获取的内容,供您参考

# Min/max values for automatic uid selection in useradd
#
UID_MIN                   1000
UID_MAX                 600000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999

对于团体来说,前面提到的约定通常超过 1000。但是您或任何人都可以自定义,因此谨慎参考/etc/login.defs

软件安装类似于clamavintel oneapi将创建系统我相信,分组并从 SYS_GID_MAX 开始并向后工作。

作为管理员,我个人的偏好是使用 1000-2000 之间的组 ID 来处理与管理相关的内容,然后使用 2000 以上的组 ID 来处理其他各种用户类型的组内容。

  • 任何真的安全 gid 将在GID_MINGID_MAX范围之间。

  • SYS_GID_MIN和之间仍然是一个相对安全的范围SYS_GID_MAX

  • 从技术上讲,任何安全 gid 都是上面尚未使用的数字SYS_GID_MIN

  • 您不想选择低于 100 的任何内容SYS_GID_MIN,并且绝对不会低于 100。

答案2

如果这是一次性的,我不会花很多时间来优化流程。首先考虑的是我会选择大于 1000 的 gid。看看预订的gids 进行指导。再次,作为一次性我会运行类似的东西

for host in (server1, server2, ..., serverx)
do
    ssh $host grep 1000 /etc/group
done

如果其中任何一个grep返回任何内容,请增加 gid 并重试。如果确实有大量服务器或分配的组需要检查,您可以循环不断增加的 gid 并检查退出状态。您可以选择是花时间进行优化还是花时间手动运行循环。

相关内容