我正在我的系统中创建一个新用户,方法是:
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 从一开始就从未同步。
脚注:
- 您可能没有以交互方式执行此操作。许多软件包添加组,有时还添加用户,以限制对该软件包拥有的文件和其他设施的访问。通常,他们会使用低于 1000 的操作系统保留组 ID 来执行此操作,但并非总是如此。当他们添加组而不是用户时,两组 ID 值就会不同步。