我有 CentOS 7 服务器,其中 samba-winbind 与 AD 通信。我们使用 rfc2307 覆盖某些(高级)用户的默认 shell。其中一台服务器仍在运行旧版本的 samba-winbind,v.4.4.4-14.el7_3;它按预期工作。
从 smb.conf 那里:
#--authconfig--start-line--
# Generated by authconfig on 2016/09/06 08:59:23
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future
workgroup = MYDOMAIN
realm = MYDOMAIN.COM
security = ads
idmap config * : range = 16777216-33554431
template homedir = /home/%U
template shell = /sbin/nologin
kerberos method = secrets only
winbind use default domain = true
winbind offline logon = false
#--authconfig--end-line--
idmap_ldb:use rfc2307 = yes
winbind nss info = rfc2307
从该服务器,我可以查询非高级用户:
$ wbinfo -i Scott
scott:*:16777255:16777217:Scott - My Company:/home/scott:/sbin/nologin
我还可以向高级用户查询:
$ wbinfo -i tgirsch
tgirsch:*:16777216:16777217::/home/tgirsch:/bin/ksh
高级用户已覆盖 shell。
但在大多数服务器上,我们已经更新了,samba-winbind 要么是 4.6 要么是 4.7;在这些服务器上,“高级”用户不会选择覆盖 shell:
$ wbinfo -i tgirsch
tgirsch:*:16777218:16777219:Tom Girsch - My Company:/home/tgirsch:/sbin/nologin
一些初步搜索表明需要更新 smb.conf 文件,用一些新参数替换一些已弃用的参数。我已经这样做了,但我仍然看到完全相同的行为。以下是使用 samba-winbind 4.7.1-9.el7_5 的机器上相关的 smb.conf 部分的样子:
#--authconfig--start-line--
# Generated by authconfig on 2019/03/14 16:23:41
# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--)
# Any modification may be deleted or altered by authconfig in future
workgroup = MYDOMAIN
realm = MYDOMAIN.COM
security = ads
idmap config * : range = 16777216-33554431
template homedir = /home/%U
template shell = /sbin/nologin
kerberos method = secrets only
winbind use default domain = true
winbind offline logon = false
#--authconfig--end-line--
idmap_ldb:rfc2307
idmap config * : backend = tdb
idmap config MYDOMAIN:backend = ad
idmap config MYDOMAIN:schmea_mode = rfc2307
idmap config MYDOMAIN:unix_nss_info = yes
我尝试注释掉 idmap_ldb 行并重新启动,但没有什么区别。
请注意,“Scott”用户(非高级/默认 shell)和“tgirsch”用户(高级用户/覆盖 shell)均仅限 AD。
我被难住了。如能得到任何帮助我将不胜感激。
答案1
回答了我自己的问题。每个定义的域都需要自己的范围,并且不与 * 范围重叠。因此,以下更改可以解决问题:
; The following line is deprecated, replaced by the schema_mode line below
;idmap_ldb:rfc2307
idmap config * : backend = tdb
idmap config MYDOMAIN:backend = ad
idmap config MYDOMAIN:schmea_mode = rfc2307
; Added the following to define custom non-overlapping range
idmap config MYDOMAIN:range = 10000-19999
idmap config MYDOMAIN:unix_primary_group = yes
idmap config MYDOMAIN:unix_nss_info = yes
“idmap config MYDOMAIN:range”行修复了这个问题。我还需要添加“idmap config MYDOMAIN:unix_primary_group = yes”行
重要的提示:如果您进行此项设置,MYDOMAIN 中的 AD 用户必须在 AD 中填充“Unix 属性”选项卡,否则它们将被拒绝。