web-dev-qa-db-ja.com

クロスドメイン-ADグループメンバーシップの変更はwinbindに反映されません

このスレッドで同様のケースがあります ADグループメンバーシップの変更はwinbind情報に反映されません 。唯一の違いは、これは私のシナリオの「クロスドメイン」でのみ発生することです。

これが私の設定です- http://Pastebin.ca/3035431 .。

誰かが私にいくつかの光を当てることができれば幸いです:

(1)「id」コマンドに正しいグループメンバーシップを反映させる方法。

(2)Active Directoryに変更が加えられた後、Winbindにグループメンバーシップを自動的に反映させるにはどうすればよいですか。

ありがとう!

1
James W.

私が提案することを試す前に、Sambaによって作成されたUID/GIDマッピングをリセットする可能性があることを理解してください。これを行うのは、気になるものがすべてActive Directory rfc2307からのものであるため、Samba/Winbinddキャッシュをワイプして最初からやり直すのが快適だからです。

最終的に私のために働いたのは、/ var/cache/sambaからすべてのファイルを削除することでした。

私は最近、頑固なユーザーIDを1つだけ更新するためにグループリストを取得することと戦いました。もちろん私のユーザーID。

クロスドメインの状況にあるとは思いませんが、可能です。私は大規模なマルチドメインActiveDirectoryにいますが、1つのドメインのユーザーとグループで作業していました。

「ネットキャッシュフラッシュ」、winbinddへの--no-cachingの追加、/ var/lib/sambaからのgroup_mapping.tdb、winbindd_idmap.tdb、winbindd_cache.tdbの削除など、多くの試みを試みました。

これは、Samba/Winbinddキャッシュファイルをクリーンアップするコマンドを含むスクリプトです。

#!/usr/bin/bash

#
# Quicky for backing up and removing the
# Samba / Winbindd cache files
#
# This solution worked when a single users group
# list would not update when changed in Active
# directory.
#
#
# Environment
#
# CentOS 7 with all updates as of 20150828
# Sernet Samba 4.2.3 - Version 4.2.3-SerNet-RedHat-18.el7
#

/usr/bin/sh /etc/init.d/sernet-samba-smbd stop
/usr/bin/sh /etc/init.d/sernet-samba-winbindd stop
/usr/bin/sh /etc/init.d/sernet-samba-nmbd stop

cd /var

/usr/bin/tar cbzf 512 samba_var_backup_`date '+%Y%m%d_%H%M%S'`.tgz cache/samba lib/samba log/samba

/usr/bin/find cache/samba -type f -exec /usr/bin/rm -f {} \;

/usr/bin/rm -f lib/samba/group_mapping.tdb
/usr/bin/rm -f lib/samba/winbindd_idmap.tdb
/usr/bin/rm -f lib/samba/winbindd_cache.tdb

/usr/bin/sh /etc/init.d/sernet-samba-nmbd start
/usr/bin/sh /etc/init.d/sernet-samba-winbindd start
/usr/bin/sh /etc/init.d/sernet-samba-smbd start

ユーザーIDが更新されない状況を作り出したと思います。このCentOS7システムでは、sssdとSambaに組み込まれているCentOS7を使用してActiveDirectoryと通信する「realm」コマンドとSSSDメソッドを試すことから始めました。これはSamba4.1.xだと思います。

SSSDはほとんど機能しましたが、遅すぎました。 「id」や「groups」のようなコマンドはひどく遅かった。ルックアップが遅すぎたため、サンバは苦労したと思います。

新しいwinbinddとデフォルトの大きいioのため、最新のSamba4.2.xを試すことにしました。

Sernet Samba/Winbindd4.2.3はうまく機能しているようです。 Sambaは問題なくActiveDirectoryに参加しました。コマンドライン「id」と「groups」は、特に最初のルックアップ後は高速です。

これが参考のために私のsmb.confです:

[global]
workgroup = PROJECTS
security = ads
realm = PROJECTS.EXAMPLE.NET
kerberos method = secrets and keytab

max log size = 50000
log level = 2

template homedir = /home/%U
template Shell = /bin/bash

idmap config PROJECTS : default = yes
idmap config PROJECTS : backend = ad
idmap config PROJECTS : schema_mode = rfc2307
idmap config PROJECTS : range = 10000-9999999999
idmap config *:backend = tdb
idmap config *:range = 2000-3999

winbind nss info = rfc2307
winbind use default domain = yes
winbind offline logon = no
winbind enum groups = yes
winbind enum users = yes
winbind refresh tickets = yes

#
# 20150827 by Joe
# Comment out expand groups for now
# I added it trying to solve nested groups not working
# correctly. Look ups slowed down when I added this and
# did not solve the problem for my login.
#
## winbind expand groups = 3

os level = 0
local master = no
domain master = no
preferred master = no


# ------------------ Options Joe Likes ------------------------
#

path = /tmp
force create mode = 0775
force directory mode = 2775
unix extensions = no
wide links = yes
load printers = no
map archive = no
map readonly = permissions
nt acl support = no


#============================ Share Definitions ==============================

[projects]
        path = /disks/projects/projects_share
        comment =  Projects Storage

        writeable = Yes
        browseable = yes
        guest ok = no
1
Joe A.

これによりキャッシュが削除され、winbindがADCから情報をプルするように強制されるようです。

service winbind stop
rm /var/cache/samba/netsamlogon_cache.tdb
service winbind start
1
Zrin