看看发生了什么。我收集 Linux From Scratch,但很特别。我想在基本系统和系统的其余部分之间进行硬分离。也就是说,应该有两个部分:只读的根,第二个 - 已经读/写。但问题是我想使用多个 passwd 和 groups 文件。原因很简单:程序需要在系统无法挂载rw分区的情况下仍然了解root用户(而不是发出“我没有名字!”等废话)。一般来说,除了 root 之外,我还想首先将一些系统用户和组写入系统。也就是说,你需要强制系统为第三方用户和组使用该文件/usr/local/etc/passwd(是的,RW分区将被挂载在),并且/usr/local/etc/passwd对于系统。是否有可能 - 无需深入研究 glibc、musl、bionic 源 - 强制系统根据某些规则查找身份验证文件(并写入它们)?如果是这样,这些规则应该如何描述?
/usr/local/etc/passwd 在 RO 分区上创建。/etc/passwd 是此路径的符号链接。当挂载 /usr/local/ 时,该文件将被更改。但是您需要在 rw 上的文件中复制系统用户。
但您所描述的是通过 /etc/nsswitch.conf 设置完成的。在这里我看到了数据库的合并,但我没有看到如何更改 compat 或文件模块的路径。看起来唯一的方法是通过从标准插件复制来创建和编译插件。
另一种方法是设置本地 ldap。
对于 systemd 系统,可以在 systemd 中注册用户和组。