群组 ID 是如何分配的?

群组 ID 是如何分配的?

我想developers在我的 OS-X 系统上创建一个组。我正在执行:

sudo dscl . -create /groups/developers
sudo dscl . -append /groups/developers passwd 'blah'

从阅读各种资料中我了解到,我应该为该组分配一个 id

sudo dscl . -append /groups/developers gid xxx

其中 xxx 是所需的 ID。我的问题是,xxx?有约定吗?有没有什么不好的选择?我是否需要担心其他东西会想要使用相同的组 ID?

答案1

OS X 通常对不同类型的帐户使用不同的 ID 范围。以下是我理解的当前布局:

最多 100 个:为静态系统定义(内置)组保留
101 - 199:由操作系统用于动态创建的组(例如共享点访问组)
200 - ?:更多静态系统组(显然 100 个是不够的)
400 - 500:更多动态系统组
501 及以上:本地管理员创建的组
1024 及以上:基于域的管理员创建的组

由于您正在创建本地群组,我会查找第一个大于 500 的可用 ID 号。

答案2

选择组 ID 时需要注意的一件事是,该 ID 尚未被其他组使用。为了按数字顺序列出现有组 ID,您可以执行以下操作:

dscl . -list /groups PrimaryGroupID | awk '{print $2}' | sort -n

相关内容