![Samba - 根据 AD 和本地 passdb 进行用户身份验证](https://linux22.com/image/589318/Samba%20-%20%E6%A0%B9%E6%8D%AE%20AD%20%E5%92%8C%E6%9C%AC%E5%9C%B0%20passdb%20%E8%BF%9B%E8%A1%8C%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我只有一个简短的问题。是否可以设置一个 Samba 服务器,该服务器能够根据 Active Directory 对某些用户进行身份验证,并根据本地 passdb 文件对某些用户进行身份验证?
我们想在公司用户和客户之间交换(大型)文件。因此我无法将客户用户添加到我们的 AD 中 - win 管理员不希望这样做。因此目前我有一个单独的帐户数据库。公司用户存在于 AD 中,并在我的 linux samba 框上与其他帐户分开
现在,如果我可以通过 AD 获取公司用户,然后我将(手动)将客户添加到本地 passdb,那就太好了。
谢谢你的帮助,彼得
答案1
这是可能的(也许在较新版本的 Samba 中):
security = ads
如果您在文件中使用smb.conf
作为域的一部分,您仍然可以在本地添加用户(使用 useradd),然后smbpasswd -a username
为他们添加密码(到默认的 tdb 后端,因为我没有明确配置它)。
您需要使用SERVERNAME\username
作为名称来进行连接,而不是DOMAIN\username
,但除此之外,这似乎可以正常工作。
对我来说,这在装有 samba 4.2.3 和 Windows 7(加入域)客户端的 CentOS 7 上有效,但我不能保证其他版本也能有效。
注意:您仍然需要将用户添加到本地 passwd 文件(或通过 NSS 使用的另一个用户信息源,例如 LDAP 或 NIS)以便可以正常getent passwd username
工作,但他们不需要拥有有效的 shell 或系统密码才能使 samba 正常工作。
答案2
如果你有两个 IP,你可以运行两个 Samba 实例,一个针对广告进行身份验证,一个针对本地数据库进行身份验证。请参阅http://wiki.samba.org/index.php/Multiple_Server_Instances,我认为不可能在一个 samba 主机上混合使用身份验证方法。