对于一个项目,我们配置了多个 samba 共享,如下所示:
[global]
workgroup = <domain name>
netbios name = <machine name>
passdb backend = tdbsam
security = ads
encrypt passwords = yes
realm = <fully qualified domain>
password server = <ldap server ip>
[Share1]
path = <path>
......
这个想法是,连接的用户将由 ldap 服务器进行身份验证,并且他们编写的每个文件将由同名的 Linux 用户拥有。除了 SAMBA 之外,Linux 机器不使用 ldap 做任何其他事情。
一切都按预期进行,直到 ldap 服务器发生变化,我们现在收到错误NT_STATUS_NO_TRUST_SAM_ACCOUNT
。我们正在与 ldap 团队进行沟通,但看到其他所有 Active Directory 身份验证都正常工作,我们预计我们有责任相应地更改 samba 配置 -_-”
我看到的指南几乎都集中在 Linux 机器上安装和使用 OpenLDAP 服务器(我们不需要),或者配置 Linux 身份验证以在内部使用 LDAP 用户或执行除用户名之外的复杂映射(我们也不需要)不需要。
我们使用的是 samba 4.2,众所周知,升级到更新版本无法使用上述配置(即使在 ldap 服务器更改之前)。
您是否知道任何其他(可能更正确)的方法来配置 samba 以实现所请求的行为?我们需要的只是 LDAP 服务器回答“user auth ok”,没有用户映射,域中没有机器,没有复杂的配置。
答案1
当您成为域的成员(例如“security = ads”所必需的)时,将在目录中创建您的服务器的计算机帐户。您的服务器使用此帐户来访问域中的资源。
NT_STATUS_NO_TRUST_SAM_ACCOUNT 表明您的计算机在使用其计算机帐户时遇到问题(其凭据可能由于某种原因已失效)。离开域并再次加入(“网络广告加入”)应该可以解决此问题。
旧版本的 Samba 支持将身份验证转发到远程服务器,而无需成为域成员,但 AFAICT 这已不再存在。