OpenLDAPサーバを利用したユーザー認証:OpenLDAPで始めるディレクトリサーバ構築(3)(2/3 ページ)
[
菊池研自,
伊藤忠テクノソリューションズ株式会社]
ここまでの設定で、OpenLDAPサーバにエントリを登録する準備が整いました。それではここからは、実際にOpenLDAPサーバにエントリを登録していきましょう。
今回は、以下のようなDIT(図2)に、ユーザーエントリ、グループエントリを登録していきます。
図2 今回作成するDIT
今回のエントリ登録には、次のようなldifファイルおよびldif作成用のスクリプトを用います(注4)。
# vi test1.ldif
dn: dc=my-domain,dc=com
objectClass: dcObject
objectClass: organization
dc: my-domain
o: my-domain
dn: cn=Manager,dc=my-domain,dc=com
objectclass: organizationalRole
cn: Manager
dn: ou=People,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: Group |
# ldapadd -x -D cn=Manager,dc=my-domain,dc=com -w secret -f test1.ldif |
# vi test2.sh
#!/bin/bash
SUFFIX="dc=my-domain,dc=com"
OU_USERS="ou=People"
OU_GROUPS="ou=Group"
BASE_NUM=1000
MAX_USERS=10
COUNTER=0
while [ $COUNTER -lt $MAX_USERS ]
do
echo dn: uid=test$BASE_NUM,$OU_USERS,$SUFFIX
echo uid: test$BASE_NUM
echo cn: test$BASE_NUM
echo objectClass: account
echo objectClass: posixAccount
echo objectClass: shadowAccount
echo userPassword: `slappasswd -s test$BASE_NUM`
echo shadowLastChange: $((`date +%s`/(60*60*24)))
echo shadowMax: 99999
echo shadowWarning: 7
echo loginShell: /bin/bash
echo uidNumber: $BASE_NUM
echo gidNumber: $BASE_NUM
echo homeDirectory: /home/test$BASE_NUM
echo gecos: test$BASE_NUM; echo
echo dn: cn=test$BASE_NUM,$OU_GROUPS,$SUFFIX
echo objectClass: posixGroup
echo cn: test$BASE_NUM
echo userPassword: !
echo gidNumber: $BASE_NUM; echo
BASE_NUM=`expr $BASE_NUM + 1`
COUNTER=`expr $COUNTER + 1`
done |
# sh test2.sh > test2.ldif
# ldapadd -x -D cn=Manager,dc=my-domain,dc=com -w secret -f test2.ldif |
注4:エントリ登録に利用するldifファイルは、文字コードにUTF-8が利用されている必要があります。CentOSではCentOS 4以降、UTF-8がデフォルトの文字コードとして利用されています。また、現在利用している文字コードはecho $LANGで確認できます。
上記のようにldapaddコマンドを用いてエントリを登録した後は、ldapsearchコマンドでOpenLDAPサーバに登録したエントリが作成されていることを確認しておきましょう。
# ldapsearch -x -h localhost -b dc=my-domain,dc=com
# extended LDIF
#
……[略]……
# numEntries: 24 |
LDAPサーバへのエントリ登録については、これまでに説明したスクリプトなどを用いて新規アカウントを作成する方法のほか、PADLソフトウェアが配布する「MigrationTools」というスクリプトセットを用いて、既存アカウント(/etc/passwdファイルに存在するアカウント情報)を移行することも可能です。
CentOSに付属するopenldap-serversパッケージには、Perlで記述されたこの移行スクリプトセットが含まれています。これを利用すると、OpenLDAPサーバのインストール後、すぐに既存アカウントの移行が行えるようになっています。
# rpm -ql openldap-servers | grep migration
/usr/share/doc/openldap-servers-2.3.27/README.migration
/usr/share/doc/openldap-servers-2.3.27/TOOLS.migration
/usr/share/openldap/migration
/usr/share/openldap/migration/README
/usr/share/openldap/migration/migrate_aliases.pl
……[略]…… |
なお、MigrationToolsの利用については、以下の記事も参考にしてください。
Copyright © ITmedia, Inc. All Rights Reserved.