エントリーの管理
まず、トップ(root)のエントリを作成します。このサーバが位置する階層構造のトップのエントリです。
エントリを追加するには、まずLDIF形式のファイルを編集します。
dn: o=FC Lab, c=JP objectClass: top |
このdnのところにはslapd.confのprefixと同じものを記述してください。slapd.confの内容と一致しない場合 エラーが発生します。ここで作ったファイルをtop.ldifというファイルに保存して以下のように追加してください。
% ldapadd -D "cn=Manager, o=FC Lab, c=JP" -w secret -f top.ldif |
このルートのエントリが存在しないと、"o=FCLab,c=JP"以下のエントリを追加しようとしても、" No such object"とエラーが出るので、必ず最初に登録してください。
さらに公開する個人情報を追加するには以下のようなLDIFファイルを作ります。
dn: cn=Takeshi Fujiki, o=FC Lab, c=JP objectClass: person cn: Takeshi Fujiki sn: Fujiki mail: fujiki@fc-lab.com telephonenumber: 093-583-4552 title: FC Lab manager #seeAlso: http://www.fc-lab.com/ userCertificate;binary:< file:///home/fujiki/fujiki.crt # takeshi's Entry dn: cn=takeshi, o=FC Lab, c=JP objectClass: person cn: panda mail: fujiki@kitakyu-techno-ctr.co.jp |
ここで作ったファイルをentry.ldifというファイルに保存した場合は以下のようにエントリーを追加します。
% ldapadd -D "cn=manager, o=FC Lab,c=JP" -w secret -f entry.ldif |
属性として使えるmail,telephonenumberなどの属性にどのようなものが使えるかを知るにはば/usr/local/etc/openldap/schema/core.schemaなどのスキーマを確認してください。
以下のように条件を指定して検索することができます。
% ldapsearch -b "o=FC Lab, c=JP"
"objectclass=*" % ldapsearch -b "o=FC Lab, c=JP" "cn=*fujiki*" |
ちなみに他のサーバで検索するには-hオプションでホストを指定します.
% ldapsearch -h directory.verisign.com "cn=*take*" |
/usr/local/etc/openldap/ldap.confで "BASE o=FC Lab, c=jp" を記述すると-bオプションでBaseNameを指定しなくても検索できるようになります。
% ldapdelete -D "cn=Manager, o=FC Lab,c=JP" -w secret "cn=takeshi, o=FC Lab, c=JP" |
このようにrootdnで指定したDNをバインドして消したいDNを指定すると削除されます。本当に削除されたかどうかは
% ldapsearch -b "o=FC Lab, c=JP" "cn=takeshi" |
でエントリが表示されないことで確認できます。
エントリの更新を行うには以下のような修正用のLDIFファイルを作成します
# sample ldif file for update dn: cn=Takeshi Fujiki, o=FC Lab, c=JP delete: telephonenumber - replace: mail mail: takeshi@fc-lab.com - add: labeledURI labeledURI: http://www.fc-lab.com/ |
このファイルは"cn=Takeshi Fujiki, o=FC Lab, c=JP"のエントリを書き換えるためのものです。telephonenumberを削除し,mailを変更し、labeledURIを追加するためのファイルです。このファイルをtakeshi_mod.ldifというファイルに保存したとすると、以下のコマンドを実行することによって、エントリの内容が更新されます。
% ldapdelete -D "cn=Manager, o=FC Lab,c=JP" -w secret -f takeshi_mod.ldif |