我的服务器可以访问只读 LDAP,其中保存了 99% 用户帐户的信息。我想在我的服务器上配置 Samba 以使用 LDAP 进行身份验证。
有时会有一些额外的用户没有 LDAP 帐户。我应该如何管理他们的身份验证数据并让 Samba 知道这一点?
来自 Samba 文档:
Samba-3 的早期版本实现了与多个帐户后端同时工作的新功能。从 Samba 3.0.23 版本开始,此功能被删除。从 Samba 3.0.23 开始,可以只使用一个指定的 passwd 后端。
因此看来 Samba 可以支持一仅限身份验证后端。有什么解决方法吗?
答案1
这里讨论的密码后端是指 Samba 用户密码的本地存储。对于设置为本地 Samba 用户的用户,他们的密码可以以多种方式存储(tdbsam、ldapsam、smbpasswd 等)。
如果您正在运行本地目录服务器并希望将 Samba 用户密码存储到其中,而不是 TDB 或平面文件,则可以使用 LDAPSam 后端。由于您提到“您可以访问只读 LDAP”,我推测此 LDAP 服务不是在本地运行的,而是您想根据 LDAP 对用户进行身份验证,而用户帐户信息已经存储在 LDAP 中?两者之间有细微的差别。一个是“我应该使用哪个后端来存储本地帐户信息”,另一个是“我应该去哪里对用户进行身份验证?”
如果是这种情况,我认为您要寻找的是 Samba 使用的身份验证模型,主要是用户、域和 ADS 模型(谷歌搜索“Samba 安全模式”)。您可能对域/ADS 模型最感兴趣,该模型允许您连接到 ActiveDirecory 或 LDAP 服务来验证用户帐户以访问 Samba 共享。
对于不在 LDAP 服务中的用户,您的选择可能是简单的本地 Samba 用户帐户,然后这些帐户将被存储 - 回到前面提到的后端 - 在您选择的任何后端中:)
如果您经常使用 Samba,我建议您去购买一些类似 O'Reilly 指南的资料。最常引用的 Samba 文档是“SAMBA-3-HOWTO”。虽然它是一个很好的参考资料,但您很容易发现其中的信息已经过时,这可能会导致更长的故障排除时间。
答案2
您可以复制只读 LDAP 服务器并将用户添加到此本地 LDAP 服务器。