我已经设置了一台 CentOS 7 机器,并通过以下方式将其加入我们的 AD realmd
:
yum install realmd samba-common oddjob oddjob-mkhomedir sssd
realm join [email protected] mydomain.local
之后,realm list
返回预期的输出
[root@webdev samba]# realm list
mydomain.local
type: kerberos
realm-name: MYDOMAIN.LOCAL
domain-name: mydomain.local
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common
login-formats: %[email protected]
login-policy: allow-realm-logins
我可以使用我的 AD 凭证通过 SSH 登录(所以我得到[电子邮件保护]@主机名)。
我现在需要允许 Windows 用户访问机器上的文件夹,但 Samba 似乎不愿意配合 - 所有组合或用户名和密码都返回错误。我不知道如何调试这个问题,或者我是否遗漏了什么。
该smb.conf
文件基本上是:
[root@webdev samba]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[vHosts]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
[global]
workgroup = MYDOMAINLOCAL
realm = MYDOMAIN.LOCAL
server string = Samba Server Version %v
security = DOMAIN
log file = /var/log/samba/log.%m
max log size = 50
load printers = No
idmap config * : backend = tdb
hosts allow = 127., 10.0.
cups options = raw
[vHosts]
comment = Virtual Host repository
path = /var/www/vhosts
valid users = MYDOMAINLOCAL\%S
read only = No
我应该注意到我已将目录(/var/www/vhosts
)系统权限更改为 777。
任何帮助都将不胜感激。提前致谢!
更新:
- DC是Windows 2003 R2,客户端是Windows 7
- 尝试将
ads
和都设置为安全性domain
,但结果类似(没有成功) - Windows 凭据对话框中收到的错误消息是“拒绝访问”
- 尝试了禁用和启用防火墙,没有区别
- SELinux 已禁用
正在搜索 krb* 包:
[root@webdev logs]# rpm -qa | grep krb
sssd-krb5-common-1.11.2-68.el7_0.5.x86_64
sssd-krb5-1.11.2-68.el7_0.5.x86_64
samba-winbind-krb5-locator-4.1.1-35.el7_0.x86_64
krb5-libs-1.11.3-49.el7.x86_64
并且命令输出getent passwd MYDOMAINLOCAL\myuser
并getent passwd mydomain.local\myuser
返回空白(无输出)。
答案1
回答我自己的问题:
唯一错误的是valid users
其中的部分smb.conf
——看起来它%S
根本不起作用。
因此,对于 Windows 中名为“WebDevGrp”的安全组,在 CentOS 上它将显示为[email protected]
(您可以通过 进行测试),然后您可以像这样创建 Samba 共享:groups [email protected]
[vHosts]
comment = Virtual Host repository
path = /var/www/vhosts
public = no
writable = yes
guest ok = no
valid users = @"[email protected]"
而且您甚至不需要输入密码——一切都是无缝的!
PS. 当调试 Samba 时,添加log level = 3
到您的配置中,会产生很大的不同!
PPS。我写了整个过程的指南 - 从全新安装的 CentOS 7 到使用 AD 身份验证/授权的 Samba 共享,您可以在我的博客中找到这里
答案2
最近,我不得不在 Fedora 和 Windows 2012/Windows 7 上配置 Windows/Samba 测试环境,并遇到了一些类似的问题。在 Windows 服务器/客户端上更改这些注册表项后,一切正常:
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\DomainCompatibilityMode=1
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\DNSNameResolutionRequired=0
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecureNegociate=0
但是我使用 winbind/kinit/etc. 来执行 AD 集成。也许这可以帮到你。
编辑1:
- 您是否在 CentOS 上安装了类似这样的 kerberos 包:krb5-workstation krb5 -libs krb5 -auth -dialog?
- “getent passwd” 会返回 Windows 域用户吗?