如何共享 Linux 用户密码和 Samba 密码

如何共享 Linux 用户密码和 Samba 密码

我已经设置了一个具有自己的用户帐户管理的 Linux 系统。它不属于任何域(DNS 除外)。现在我想允许其用户在 Windows 系统上安装他们的主目录。

实现此目的的一种方法是保留两个用户帐户管理:一个由 维护passwd,另一个由 维护smbpasswd。这似乎没有必要复杂。我只想维护一个。

我该如何最好地安排呢?系统正在运行 Ubuntu 12.04 (桌面版)。

答案1

使用聚丙烯酰胺/etc/passwd 的支持模块。


更新:

有一个根本原因导致您无法以任何简单的方式统一这些身份验证机制。

  • Unix 和 Linux /etc/passwd 身份验证要求将用户的密码提供给服务器。这可以在加密通道内进行(如不使用私钥身份验证时的 SSH 密码身份验证)。
  • NTLM 和 MS-Kerberos 身份验证不传输密码,它们传输密码的哈希值,身份验证服务器获取用户密码的副本,使用相同算法构建哈希值,并将哈希值结果与客户端提供的哈希值进行比较。由于 /etc/passwd 不存储密码并使用不同的哈希算法,因此 /etc/passwd 没有足够的信息来验证 NTLM/Kerberos 客户端。
  • 真正旧的 SMB 身份验证协议传递密码(以纯文本形式,即不受保护),因此 SMB 服务器可以计算该密码的 /etc/passwd 类型哈希并将其与存储在 /etc/passwd 中的哈希进行比较。

从上面可以看出,如果您想避免纯文本密码传输到您的 LAN,那么您需要一个单独的文件来存储密码(smbpasswd)或域控制器。

相关内容