Active-Directory
Samba 4 升級後不支持 Winbind rfc2307 shell
我有帶有 samba-winbind 的 CentOS 7 伺服器與 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;在這些伺服器上,“超級”使用者沒有選擇覆蓋外殼:
$ 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”使用者(非 power/default shell)和“tgirsch”使用者(power-user/overridden shell)都是 AD-only。
我難住了。任何幫助將不勝感激。
回答了我自己的問題。每個定義的域都需要自己的範圍,該範圍不與 * 範圍重疊。因此,以下更改清除了一切:
; 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 屬性”選項卡,否則他們將被拒絕。