web-dev-qa-db-ja.com

Samba4でのNTからUNIXへのグループマッピング

NTグループDomain UsersをSamba4.7.6 ActiveDirectoryドメインコントローラーのusersとは別のUNIXグループにマップしたいのですが、これを実行しようとすると、次のように失敗します。

> 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へのグループマッピングを管理する適切な方法は何ですか?

EDIT:Sambaメーリングリストで 同様の問題 の人を見つけたので、おそらく内部LDAPサーバーを直接?何かのようなもの:

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

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

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

> 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
Ottid Mes

私がまとめることができたものから、組み込みのLDAPサーバーを直接編集する以外に、これを適切に構成できるツールがSamba4で利用できないようです。

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

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

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

次に、目的のUNIXGIDでxidNumber: 100を更新することにより、SIDの組み込みLDAPサーバーのレコードを更新します。

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

これをshareというUNIXグループのGID250に変更した後、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:
1
Ottid Mes