LDAPがインストールされていない場合,次のA,Bのどちらかの方法でインストールします。
OpenSSL 関連 |
openssl-0.9.7a-35.i386.rpm |
Berkeley DB 4 関連 | db4-4.2.52-3.1.i386.rpm db4-devel-4.2.52-3.1.i386.rpm db4-tcl-4.2.52-3.1.i386.rpm db4-utils-4.2.52-3.1.i386.rpm |
CyrusSASL 関連 | cyrus-sasl-2.1.18-2.i386.rpm cyrus-sasl-devel-2.1.18-2.i386.rpm cyrus-sasl-gssapi-2.1.18-2.i386.rpm cyrus-sasl-md5-2.1.18-2.i386.rpm cyrus-sasl-plain-2.1.18-2.i386.rpm |
OpenLDAP 関連 | openldap-2.1.29-1.i386.rpm openldap-clients-2.1.29-1.i386.rpm openldap-devel-2.1.29-1.i386.rpm openldap-servers-2.1.29-1.i386.rpm |
自分でコンパイルする分,時間がかかりますが,最新のものをインストールすることができます。
1)OpenSSL のopenssl-0.9.7d.tar.gzをダウンロードします。
$ cd /ダウンロードしたディレクトリ/
$ gzip -dc openssl-0.9.7d.tar.gz | tar xvf -
(ダウンロードしたものを解凍)
$ cd openssl-0.9.7d
(解凍後新しくできたディレクトリへ移動)
$ ./config shared --openssldir=/usr/local
(共有ライブラリをインストールするディレクトリを指定)
$ make
(コンパイル)
$ /bin/su -c "make install"
(インストール)
2)Berkeley DB 4 のdb-4.1.25.tar.gz をダウンロードします。
$ cd /ダウンロードしたディレクトリ/
$ gzip -dc db-4.2.52.tar.gz | tar xvf -
(ダウンロードしたものを解凍)
$ cd db-4.2.52/build_unix
(解凍後新しくできたディレクトリへ移動)
$ ../dist/configure --prefix=/usr/local
(共有ライブラリをインストールするディレクトリを指定)
$ make
(コンパイル)
$ /bin/su -c "make install"
(インストール)
3)CyrusSASL のcyrus-sasl-2.1.19.tar.gz をダウンロードします。
$ cd /ダウンロードしたディレクトリ/
$ gzip -dc cyrus-sasl-2.1.19.tar.gz | tar xvf -
(ダウンロードしたものを解凍)
$
cd cyrus-sasl-2.1.19
(解凍後新しくできたディレクトリへ移動)
$./configure
$
make
(コンパイル)
$ /bin/su -c "make install && in -s /usr/local/lib/sasl2
/usr/lib/sasl2"
(共有ライブラリをインストールする場所を指定し,インストール)
4)OpenLDAP のopenldap-stable-20040614.tgz をダウンロードします。
$ cd /ダウンロードしたディレクトリ/
$ gzip -dc openldap-stable-20040614.tgz | tar xvf -
(ダウンロードしたものを解凍)
$
cd openldap-stable-20040614
(解凍後新しくできたディレクトリへ移動)
$ ./configure
(このコマンドの出力でエラーがないことを確認)
$ make
(コンパイル)
$ make
test
(20種類以上のテスト。うまくいけば次に進みます)
$
/bin/su -c "make install"
(インストール)
スキーマとは,データの格納形態を定義したもののことです。これは,LDAPに限ったことではなく,全てのデータベースに共通のものです。 LDAPのスキーマはかなり細かい定義がされます。次の例はcore.schemaの中のnameの属性定義です。
attributeType ( 2.5.4.41 Name 'name'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.155.121.1.15{3267} )
(1行目の2.5.4.41はOID(オブジェクトID)と呼ばれ,全世界共通の番号でISOで標準化されています。Name 'name'は属性名をnameとするという宣言です。
2,3行目は,データ検索の際の等価規則です。この場合は,大文字小文字を無視することを意味しています。
4行目は,属性構文と呼ばれますがデータ形式です。このOIDは,文字コードUTF-8で表された文字列をデータとするという宣言です。)
ファイル名 | 説明 |
core.schema | OpenLDAPのコアスキーマ(必須) |
cosine.schema | Cosine and Internet X.500 スキーマ |
inetorgperson.schema | 人の属性をよく定義してあるスキーマ |
nis.schema | NIS用のスキーマ |
java.schema | JAVAに関連したスキーマ |
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/inetorgperson.schema
# /etc/openldap/slapd.conf
#------ グローバルセクション -----------
# スキーマファイルのインクルード
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/inetorgperson.schema
# 起動時のPID番号を保存するファイル名
pidfile /usr/local/var/slapd.pid
# 起動時のslapdの引数を保存するファイル名
argfile /usr/local/var/slapd.args
#-------- データベースセクション --------------
# データベースの形式を宣言
database dbd
# 処理するデータツリーの先頭
suffix "dc=ikkzz,dc=ed,dc=jp"
# このデータベースの管理者の名前
rootdn "cn=manager,dc=ikkzz,dc=ed,dc=jp"
# 管理者のパスワード
rootpw "secret"
# データを格納するディレクトリ
directory /var/ldap/ikkzz
mode 0600
# 管理するインデックス
index objectclass eq
index cn pres,eq
# アクセス制限(ここでは全員に読み取りを許可する単純なACL)
access to *
by read
1)まず,次のファイル/tmp/top.ldifを作ります。
# /tmp/top.ldif
#データツリーの頂点を作成
dn: dc=ikkzz,dc=ed,dc=jp
dc: ikkzz
objectClass: dcObject
objectClass: organizationalUnit
ou: ikkzz dot ed
## ou=peopleを作成してメンバーを登録する枝を用意する
dn: ou=people,dc=ikkzz,dc=ed,dc=jp
ou: people
objectClass: organizationalUnit
2)そして,次のコマンドを実行すると,/tmp/top.ldifに格納されているエントリをディレクトリに追加できます。
root# slapadd -v -l /tmp/top.ldif
added "dc=ikkzz,dc=ed,dc=jp" (00000001)
added "ou=people,dc=ikkzz,dc=ed,dc=jp" (00000002)
先ほど何もなかったディレクトリ/var/ldap/ikkzz/に数個のファイルが出現していることでしょう。
1)まず,次のファイル/tmp/member.ldifを作ります。次の例では,二人のデータを投入していることになります。
/tmp/member.ldif
#nambawakanaの作成
dn: cn=wakana namba,ou=people,dc=ikkzz,dc=ed,dc=jp
cn: wakana namba
sn: namba
mail: ynbbb@yah.jp
labeledURI: http://www.ikkzz.ed.jp
roomNumber: 12345 Maeson Sheep
departmentNumber: Eng
telephoneNumber: 0776-555-4444
objectClass: inetOrgPerson
#nambahanakoの作成
dn: cn=hanako namba,ou=people,dc=ikkzz,dc=ed,dc=jp
cn: hanako namba
sn: namba
mail: ynaaa@yah.jp
labeledURI: http://www.ikkzz.ed.jp
roomNumber: 12345 Maeson Hills
departmentNumber: Eng
telephoneNumber: 0776-3333-4444
objectClass: inetOrgPerson
2)そして,次のコマンドを実行すると,/tmp/member.ldifに格納されているエントリをディレクトリに追加できます。
root# slapadd -v -l /tmp/member.ldif
added "cn=wakana namba,ou=people,dc=ikkzz,dc=ed,dc=jp" (00000003)
added "cn=hanako namba,ou=people,dc=ikkzz,dc=ed,dc=jp" (00000004)
メンバーの登録などをコマンドを使ってテキスト・ベースで入力するのは大変ですので,GUIで利用できる三つの方法を紹介します。最初のGQを使うことが良いかと思います。
インストール方法
理研ftpサイト から gq-1.0beta1.tar.gz と gq-1.0beta1-langpack-1.tar.gz をダウンロード
$ cd /ダウンロードしたディレクトリ/
$ tar -xzf gq-1.0beta1.tar.gz
(ダウンロードした本体を解凍)
$ mv gq-1.0beta1-langpack-1.tar.gz gq-1.0beta1
(解凍後新しくできたディレクトリへLangPackを移動)
$ cd gq-1.0beta1
(ディレクトリへ移動)
$ tar -xzf gq-1.0beta1-langpack-1.tar.gz
(LangPackを解凍)
$ gq-1.0beta1-langpack-1/langpack .
(解凍してできたlangpackを起動。最後の”.”を忘れないように注意)
$ ./configure
(このコマンドの出力でエラーがないことを確認)
$ make
(コンパイル)
$ make install
(インストール。/usr/local/bin/ にGQがインストールされます。)
JAVAを使うのでSun Microsystemsのホ―ムページからダウンロードしてJavaをインストールしておいてください。次に示すのはj2re1.4.2_05の場合です。
$ cd /ダウンロードしたディレクトリ/
$ tar -xzf Browser281.tar.gz
(ダウンロードした本体を解凍)
$ cd Browser281
(ディレクトリへ移動)
$ gedit
lbe.sh
(lbe.shが起動ファイル。その中のJAVAディレクトリの指定をJAVA=/usr/java/j2re1.4.2_05/bin/java に書き換える。)
$ ./lbe.sh
(起動)