エントリーの管理

エントリーの追加

topエントリーの追加

まず、トップ(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"とエラーが出るので、必ず最初に登録してください。

personエントリーの追加

さらに公開する個人情報を追加するには以下のような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