我有一个 Samba4 域控制器,并已将 Ubuntu 16.04 成员服务器添加到域中。我为此使用了 samba+winbind,一切似乎都正常。idmap 后端是使用“ad”设置的。以下是 smb.conf,供参考。
[global]
workgroup = name
realm = NAME.DOMAIN.COM
netbios name = app02
security = ADS
log file = /var/log/samba/%m.log
log level = 1
# Default idmap config for local BUILTIN accounts and groups
idmap config * : backend = tdb
idmap config * : range = 3000-7999
# idmap config for the NAME domain
idmap config NAME:backend = ad
idmap config NAME:schema_mode = rfc2307
idmap config NAME:range = 10000-999999
# Template settings for login shell and home directory
winbind nss info = template
template shell = /bin/bash
template homedir = /home/%U
winbind use default domain = yes
winbind use default domain = yes
我遇到的问题与我没有在 smb.conf 中设置时进行身份验证(SSH)有关。
当您将其设置为是时,各种命令(如、、)wbinfo -u
将返回不带域名的帐户。如果您不设置它,您将得到像和这样的结果。您可能不想设置它的原因是它会将您的登录限制在单个域中。wbinfo -g
getent passwd UserName
Domain\UserName
Domain\Domain Users
但是,当我从 smb.conf 中删除此设置时,我无法再登录。我怀疑这是在 SSH 登录时尝试提供域\用户名时的格式问题。我尝试过域\用户名、域+用户名、用户名和用户名@域。全部失败了。
winbind use default domain
是否有人知道在未设置的情况下如何让这些 AD 用户使用 SSH 登录?
答案1
找到问题所在
我正在删除winbind use default domain
设置smb.conf
然后运行sudo smbcontrol all reload-config
。我认为这足以让一切都正常,但事实并非如此。
无论出于什么原因,winbind 都没有更新。我需要停止服务,清除缓存,然后重新启动。
service winbind stop
net cache flush
service winbind start
奇怪的是,我这样做之后问题就没再出现。现在我可以更改设置winbind use default domain
和/或winbind separator
,运行sudo smbcontrol all reload-config
,登录凭据就会更改并正常工作。