使用不同 UID 和 GID 创建的用户

使用不同 UID 和 GID 创建的用户

我正在我的系统中创建一个新用户,方法是:

sudo useradd -m -G nas -s /bin/bash alf

据说应该创建一个具有相同 UID 和 GID 的新用户。但是该passwd文件附加了以下行:

alf:x:1004:1007::/home/alf:/bin/bash

其中 UID 为 1004,GID 为 1007。我创建的其他用户具有相同的 UID 和 GID,那么为什么会发生这种情况?

答案1

useradd仅在以下情况下使用相同的 UID 和 GID:

  • 不会引起冲突;或者

  • -u你用和-g标志强制它

它将跳过已在使用的 ID。因此,我猜测自从您创建了具有匹配 UID/GID 对的用户和/或组以来,您已经添加了其他用户和/或组。

要使 ID 恢复同步,您可以使用-g-u标志创建下一个 ID,使其 ID 等于已分配的最高 UID 和 GID 的 1。后续useradd调用不会填补空白。它们只会开始编号超过新的高水位线。

UID 和 GID 值不同步并没有什么问题。在这种情况下,系统将完美地工作。旧式 Unix 通常不使用每用户组方案,因此 ID 从一开始就从未同步。


脚注:

  1. 您可能没有以交互方式执行此操作。许多软件包添加组,有时还添加用户,以限制对该软件包拥有的文件和其他设施的访问。通常,他们会使用低于 1000 的操作系统保留组 ID 来执行此操作,但并非总是如此。当他们添加组而不是用户时,两组 ID 值就会不同步。

相关内容