通过 pam_pwdfile 进行 samba 身份验证

通过 pam_pwdfile 进行 samba 身份验证

当从默认的 samba 配置启动时,需要更改哪些设置才能使 samba 通过 pam 对其用户进行身份验证?

我正在尝试通过 pam(特别是 pam_pwdfile)验证 samba 用户。我遇到的问题是 samba 配置文件,我似乎无法在文件的全局部分获得正确的设置组合。

答案1

这是来自 Samba如何: “smb.conf 中有一个名为“服从 pam 限制”的选项。以下内容来自 SWAT 中此选项的在线帮助:当 Samba 配置为启用 PAM 支持(即 --with-pam)时,此参数将控制 Samba 是否应服从 PAM 的帐户和会话管理指令。默认行为是仅使用 PAM 进行明文身份验证,并忽略任何帐户或会话管理。如果加密密码 = 是,Samba 始终会忽略 PAM 进行身份验证。原因是 PAM 模块无法支持 SMB 密码加密所需的质询/响应身份验证机制。默认:服从 pam 限制 = 否”

答案2

当从默认的 samba 配置启动时,需要更改哪些设置才能使 samba 通过 pam 对其用户进行身份验证?

啊,听起来你有点本末倒置了。听我说一会儿……

这里缺少很多信息 - 我假设你所说的“身份验证”实际上是指“我的网络文件共享客户端(通常基于 Windows)正在尝试连接到 Samba 提供的共享或资源,并且所呈现的凭据需要使用本地文件进行身份验证/etc/passwd。”在这种情况下,你有点不能从这里到达那里...没有很多的箍。我也不知道你必须使用多少台服务器,它们运行的​​是 Windows、BSD、Linux 还是其他什么。我不知道最终目标是什么 - 如果你只是在 LAN 上为本地用户提供服务,或者你打算以其他方式使用它。

Samba 通常有自己的身份验证钩子,不依赖于/etc/passwd存储 NTLM 哈希所施加的要求。没有哈希 = 没有身份验证。所以有问题。幸运的是,有几种解决方案。

第一种是使用现有的活动域控制器。 通常,您会设置 Winbind 并/etc/nsswitch.conf为用户和组添加一个垫片,它可以处理此问题(然后 winbind 会处理身份验证请求,而不是 pam)。这需要一点手工操作,但设置起来最容易,因为用户帐户由 Windows 服务器控制和维护,并且基本上不需要您干预 Samba。

第二种是使用LDAP。 我没有用过这种方法,但听说它很流行。它仍然需要另一台服务器。

第三是将您的 Samba 安装转变为 PDC。 如果你没有外部 AD 控制器,你可以使用你正在使用的 Samba 安装来设置 NT4 风格的 PDC,尽管你仍然需要通过*.tdb文件验证用户身份。 这smbpasswd命令用于此目的。

相关内容