Samba 4 升级后,Winbind rfc2307 shell 不再适用

Samba 4 升级后,Winbind rfc2307 shell 不再适用

我有 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 属性”选项卡,否则它们将被拒绝。

相关内容