添加用户是使用该函数在 portage ebuild 文件中指定的enewuser
。一些 ebuild 使用特定的 UID(第二个参数)调用此函数,其他 ebuild 要么不提供该参数,要么指定 -1 ,这具有相同的效果。在后一种情况下,使用了一些空闲 UID(可能是系统上的下一个空闲 UID),这使得不可能在系统之间保持 UID 同步。
portage中有没有一种机制可以实现跨系统的UID一致?例如,为portage提供“用户名-UID”组合的数据库,并让它覆盖默认行为,enewuser
以便在创建新用户时强制执行此映射?
答案1
我没有使用 Gentoo 的经验,但我会测试如果包创建的用户帐户已经存在会发生什么。
如果程序包接受预先存在的帐户,只需找出程序包需要什么用户名,然后在安装程序包之前在所有系统上预先创建具有匹配 UID 的用户。