如何为自定义软件包(RedHat 和兼容)选择系统用户 ID?

如何为自定义软件包(RedHat 和兼容)选择系统用户 ID?

我应该如何为在自定义 .rpm 包中创建的系统用户选择正确的uid(或)?gid

该用户将用于运行非 root 守护程序。

adduser我认为通过省略来选择下一个ID是不可接受的,因为这可能会与官方软件包的--uidfixed冲突。uid此外,这可能会导致多个系统出现不同的 ID,从而使进一步的管理变得更加困难。

是否存在uid可以使用的未使用和未保留的范围(只要它们不在本地环境中重用)?有没有生成uid/ 的算法gid

此问题适用于 RedHat EL 6+、CentOS 6+ 和 Fedora。包的 .srpm 或 .spec 应该被发布。

答案1

RHEL6 迁移指南文档显示 中有一个静态分配的 UID 列表/usr/share/doc/setup-*/uidgid,目前大约有 200 个,动态系统用户从 499 个开始向下计数。

我将其解读为“adduser -r在这种情况下使用,如果您保持在 300 以上,当然不用担心;除非您有数百个系统用户,否则不会发生冲突”。

答案2

让我们adduser选择一个用户ID正确的方法。这不会与官方包冲突,因为自动分配的 UID 和静态分配的 UID 位于不同的范围内。是的,这确实会导致跨系统的用户 ID 不同;没有简单的方法可以做到这一点,因为您必须告诉全世界(每个系统管理员和软件包编写者)“不要使用这个用户 ID,它是我的”。

具体来说,请使用adduser -r以便在为自动分配的系统帐户保留的范围内创建用户。这样,UID 就不会与其他动态分配的 UID(因为adduser选择一个尚不存在的 UID)冲突,也不会与静态分配的 UID 或实体用户的 UID 冲突(因为它们位于不同的范围内)。

欲了解更多信息,请参阅Fedora 打包指南

相关内容