我应该如何为在自定义 .rpm 包中创建的系统用户选择正确的uid
(或)?gid
该用户将用于运行非 root 守护程序。
adduser
我认为通过省略来选择下一个ID是不可接受的,因为这可能会与官方软件包的--uid
fixed冲突。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 打包指南。