私は現在、コマンドラインからopenldapを実行しています。ユーザーJohnを追加してグループdevgroupを追加し、Johnをdevgroupグループに割り当てました。コマンドラインからユーザー(John)を削除したとき
ldapdelete -Y EXTERNAL -H ldapi:/// -D "cn=admin,dc=example,dc=local"
"uid=john,dc=example,dc=local"
ユーザーは消えましたが、以前に割り当てられたグループメンバー(devgroup)にはいません。
ユーザーとグループに割り当てられたユーザーが関連付けられていないことに気付きました。基本的に、グループに存在しないユーザーを追加できます。これら2つをリンクする方法はありますか?
ありがとう!
そのコマンドでユーザーを削除しているだけで、OUからすべてのエントリを削除しているわけではないと思います。 LDAPは、あなたが考えているような異種のオブジェクトとのリンクを維持しないことを理解しています。むしろ、最初にldapsearch
を実行してオブジェクトのリストを作成し、次にldapdelete
またはldapmodify
。
通常、最初にldapsearch
から.ldif
ファイルに結果を書き込み、次にldapmodify
またはldapdelete
を使用してそれらに作用します。ただし、このU&L Q&Aのタイトルのこの例に示すように、ldapsearch
からの出力を解析し、それをldapmodify
にパイプすることができます: ldapdelete、OUのすべてのUIDを削除したいがOUを保持しますか? 。
$ ldapsearch -ZZ -W -D 'cn=Manager,dc=site,dc=fake' \
-b 'ou=people,dc=site,dc=fake' -s one dn | \
grep dn: | cut -b 5- | ldapdelete -ZZ -W -D 'cn=Manager,dc=site,dc=fake'
同様のことをして、ユーザーがmemberUid
であるすべてのグループを見つけ、そのリストをldapmodify
に渡してから、ldapdelete
を実行する必要があると思いますすべてのグループから削除されたら、コマンドを実行します。
ちなみに、グループからユーザーを削除するには:
dn: cn=Manager,dc=site,dc=fake
changetype: modify
delete: memberuid
memberuid: john
.ldif
ファイルに関しては、このページのタイトルの例: ライトウェイトディレクトリアクセスプロトコル(LDAP)を使用したユーザーの管理 は優れています。これらは、複数のオブジェクト間で操作を実行するために拡張できる.ldif
スニペットを使用してすべての基本的な操作を実行する方法を示しています。
すでにグループエントリとそのメンバーエントリを認識しているので、ハードリンケージのない個別のエントリです。
次の2つのオプションがあります。