我正在实现一个 Web 服务器,其中配置和用户文件通过 NFS (Amazon EFS) 共享,如下所述: https ://serverfault.com/a/933566/81774
作为我的 Apache 配置的一部分,我使用 mod_mpm_itk 以不同的用户名运行网站。如何在服务器之间同步用户名,而无需将新用户名烘焙到 Web 服务器 AMI。
我假设我不能只是将 /etc/passwd 移动到 NFS,因为如果没有安装 NFS,服务器将无法启动?
根据评论更新:
似乎没有办法使用 nsswitch.conf 加载其他文件,只能根据此答案查询其他服务:https ://unix.stackexchange.com/a/210587
附加服务的缺点是引入了额外的故障点。
当服务器启动时从 NFS 复制 /etc/passwd 并使用 pwck 重新读取它是否是一个可行的选项,如此处所述https://unix.stackexchange.com/a/102336?
如果您不想引入额外的故障点,则必须在本地创建用户。这实际上是一个非常体面的想法。
虽然您可以复制 passwd 文件,但我建议您使用本地 ansible playbook 或 puppet 独立清单,如果用户丢失,它们可以在本地创建用户。您可以将剧本保存在 NFS 上。
您可以尝试使用
pam_extrausers
. 它使用单独/etc/passwd
的用户帐户样式列表,以补充标准身份验证机制。等效文件是/var/lib/extrausers/passwd
、/var/lib/extrausers/shadow
和/var/lib/extrausers/group
。每当它的一个用户帐户被更新时,同步它会更安全,留下
/etc/passwd
每台服务器管理的相关文件。在 Debian 派生系统上,软件包名称是
libnss-extrausers
.虽然这是一个
PAM
模块,但配置应用于/etc/nsswitch.conf
:要在这些文件中创建条目,最好在您的主系统上以本地用户的身份创建它们(标准实用程序都不能管理这些条目)。然后将这些条目从现有的
passwd
,shadow
和group
文件复制到/var/lib/extrausers
. 请记住修复权限shadow
以匹配系统之一。您可以使用您喜欢的任何技术复制文件。我喜欢
rsync
根等价: