必须有本地用户才能向 AD 验证 Samba 吗?

必须有本地用户才能向 AD 验证 Samba 吗?

我有一台 CentOS 5.3 服务器,上面运行着 Samba。我已将此服务器加入到我的域中,希望允许 AD 用户访问我的 Samba 共享。我发现这可行,但前提是我要验证的 AD 用户名是服务器上的本地用户。换句话说,如果我尝试访问共享,并尝试使用 AD 用户名“joe”进行身份验证,除非我在服务器上创建名为“joe”的用户,否则我会收到错误。我不必创建匹配的密码或任何东西......本地用户的密码始终为空,所以我知道身份验证实际上是针对 AD 进行的。

这是我的 smb.conf 文件:

[全球的]

    workgroup = <mydomain>
    server string = <snip>
    netbios name = HOME
    security = ADS
    realm = <mydomain.com>
    password server = <snip>
    auth methods = winbind
    log level = 1
    log file = /var/log/samba/%m.log

[amore] 路径 = /var/www/amore 可浏览 = 是 可写 = 是 有效用户 = DOMAIN\user1 DOMAIN\user2 DOMAIN\user3 DOMAIN\user4

我认为我的 kerberos 设置没有问题,因为我已加入域并且可以使用 wbinfo 查看用户和组。但是,如果需要,我可以提供该信息。

有人有主意吗?

答案1

从根本上来说,Linux 在其访问控制系统中使用 UID/GID 值,而 Windows NT 操作系统系列在其访问控制系统中使用安全标识符 (SID)。

Windows Server 2003 R2 Active Directory 以及“Services for Unix”(提供 RFC2307bis 模式)可以在目录中存储每个用户的 UID/GID 值,并且 Samba 能够使用这些值(或者,我读过——我从未真正尝试过,但我准备好的多个文档都说它运行良好)。

如果您没有将 UID/GID 值存储在目录服务中,那么您将需要一种机制来确定这两个不同的标识符系统之间的映射。通常使用“winbind”的“idmap”功能来执行此映射。请查看以下文章以了解该功能:

相关内容