У меня есть серверы CentOS 7 с samba-winbind, которые разговаривают с AD. Мы используем rfc2307, чтобы переопределить оболочку по умолчанию для определенных (опытных) пользователей. На одном из таких серверов все еще работает более старая версия 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
Опытный пользователь переопределил оболочку.
Но на большинстве серверов мы обновились, и samba-winbind стоит 4.6 или 4.7; на этих серверах «опытный» пользователь не использует командную оболочку:
$ wbinfo -i tgirsch
tgirsch:*:16777218:16777219:Tom Girsch - My Company:/home/tgirsch:/sbin/nologin
Некоторые первоначальные поиски подсказали, что файл smb.conf необходимо обновить, чтобы заменить некоторые устаревшие параметры некоторыми новыми. Я сделал это, но все еще наблюдаю точно такое же поведение. Вот как выглядит соответствующий раздел smb.conf на машине с samba-winbind 4.7.1-9.el7_5:
#--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» (оболочка без питания / по умолчанию), и пользователь «tgirsch» (пользовательский / переопределенная оболочка) работают только с AD.
Я в тупике. Любая помощь будет принята с благодарностью.
Ответил на свой вопрос. Каждый определенный домен требует своего собственного диапазона, который НЕ перекрывается с диапазоном *. Итак, следующие изменения прояснили ситуацию:
; 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»
Важная заметка: Если вы настроите это, пользователи AD в MYDOMAIN должен заполните вкладку «Атрибуты Unix» в AD, иначе они будут отклонены.