Samba – 仅使用 Unix 用户

Samba – 仅使用 Unix 用户

我正在使用 Samba 设置一个具有文件共享功能的家庭服务器。它有 XUbuntu 15.10。Samba默认
使用 中指定的密码。但是,我希望 Samba 使用 中的用户和 中的密码。 我设法在 Google 上找到了很多使用 的手册,但我不理解它们,也不知道这是否是一种好方法。shares-admin/etc/passwd/etc/shadow
/etc/pam.d/samba

这样做正确吗?如果正确,那么我应该写什么/etc/pam.d/samba?如果不正确,正确的方法是什么?

答案1

总结:有正确的方法。

桑巴默认使用 /etc/passwd 中的账户 - 它将获取 UID、主目录等。但是,它不能使用 /etc/shadow,因为它没有足够的信息用于 SMB 登录。

要通过 PAM(或 /etc/shadow)进行身份验证,服务器必须接收纯文本密码,然后将其提供给 pam_unix、进行哈希处理并比较哈希值。这不适用于 SMB。

在工作组系统上,SMB 始终使用 NTLMv2 协议,该协议需要了解密码的“NT 哈希”(无盐 MD4);不可能从 /etc/passwd 中包含的哈希中推导出该哈希,反之亦然。

Samba 使用 PAM 的唯一原因是授权(访问控制)、会话设置(SELinux、日志记录……)和远程密码改变使用smbpasswd

答案2

我认为 Grawity 所说的一切都是正确的。但我认为,只有将加密密码设置为 no 时,才能将 /etc/shadow 与 pam_unix 一起使用:

encrypt passwords = no;

然后更改 Windows 上的注册表以使其不对密码进行哈希处理。

相关内容