Samba 4 における NT から UNIX へのグループ マッピング

Samba 4 における NT から UNIX へのグループ マッピング

Domain UsersNT グループを Samba 4.7.6 Active Directory ドメイン コントローラーとは異なる UNIX グループにマップしたいのですusersが、これを実行しようとすると、次のように失敗します。

> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]

winbind でこれを行うことができると読んだので試してみましたが、次のエラーが発生しました。

> wbinfo --set-gid-mapping=1000,S-1-5-21-...-513
failed to call wbcSetGidMapping: WBC_ERR_NOT_IMPLEMENTED
Could not create or modify gid to sid mapping
[1]

Samba 4 で NT から UNIX へのグループ マッピングを管理する適切な方法は何ですか?

編集:Sambaのメーリングリストで、同様の問題なので、内部 LDAP サーバーを直接変更することで回避できるでしょうか? たとえば次のようになります:

ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...

残念ながら、私は LDAP の経験がないので、自分のユースケースに有効な LDIF ファイルを提供する方法がわかりません。

編集2:おかげでLDAP での Samba 4 ユーザーとグループ管理に関するブログ投稿、NT グループがマップされる UNIX グループを編集することができました。

> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'

> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

したがって、正しいグループは現在 によって報告されていますnet groupmapが、wbinfo依然として古い値が報告されているため、そのデータベースからデータは取得されていない可能性があります。wbinfo私のユースケースでは正しいグループを報告することがどれほど重要であるかはわかりませんが、これを回答として使用して解決済みとしてマークする前に、それを変更できるかどうかを確認します。

答え1

私が集めた情報から判断すると、組み込みの LDAP サーバーを直接編集する以外に、これを適切に構成できるツールは Samba 4 には存在しないようです。

このnetツールは組み込みの LDAP サーバーではうまく動作しないようで、グループ マッピングの一覧表示や権限の付与など、一部の操作のみが成功しますが、グループのメンバーの一覧表示やグループ マッピングの変更は機能しません (私の質問にあるように)。

マッピングを変更するには、root として次のコマンドを実行しました。まず、 の SID を取得する必要がありますDomain Users。これは、Samba サーバーのプロビジョニングごとに一意になるためです。

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users

xidNumber: 100次に、目的の UNIX GID で更新して、組み込み LDAP サーバーの SID のレコードを更新します。

root> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
# 0 adds  1 modifies  0 deletes

250これをという UNIX グループのGID に変更した場合share、 を呼び出すと、net groupmap次のようにグループが報告されますshare

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

ただしwbinfowinbindd古い GID が引き続き報告されます。

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

したがって、 のキャッシュ エントリを無効にする必要がありますDomain Users。いくつかの実験を行った後、更新された GID を検索するように要求することでこれを実現できました。

root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:

これは次のようにも正しく報告されます--group-info:

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250:

関連情報