我有一台 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”功能来执行此映射。请查看以下文章以了解该功能:
- 身份映射 (IDMAP)来自 Samba HOWTO 合集
- Winbind:使用域帐户
- Samba 与 Active Directory: 你正在尝试做的很多事情