SSブログ

LDAPコマンドライン・ユーティリティを使ってみよう(ldapmodify/ldapsearch/ldappasswd/ldapdelete) [DSEE7]


DSEE7のインストールができましたので、LDAPコマンドライン・ユーティリティを使ってみたいと思います。
コマンドライン・ユーティリティはインストールディレクトリのdsrk/binにあります。
/mps/serverroot/dsee7/dsrk/bin
dsrkはDirectory Server Resource Kitの略です。

では、よく使う4つのコマンドについて、使ってみたいと思います。
ldapmodify
ldapsearch
ldappasswd
ldapdelete
なお、サフィックスはdc=example,dc=comです。

1.ldapmodifyの使い方
1-1.LDIFファイルによるエントリ追加
LDIFファイルを作成します。
[root@dsee7m1 ~]# cd /tmp
[root@dsee7m1 tmp]# vi assimane.ldif
[root@dsee7m1 tmp]# cat assimane.ldif
dn: uid=bassimane, ou=People, dc=example,dc=com
cn: Blog Assimane
sn: Assimane
givenName: Blog
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: bassimane
mail: bassimane@example.com
telephoneNumber: +1 408 555 1111
facsimileTelephoneNumber: +1 408 555 2222
roomNumber: 3333
userPassword: password

ldapmodifyコマンドでエントリを追加します。
[root@dsee7m1 tmp]# ldapmodify -h localhost -p 389 -D "cn=directory manager" -w - -f /tmp/assimane.ldif -a
Enter bind password:
adding new entry uid=bassimane, ou=People, dc=example,dc=com

ldapmodify -helpでヘルプが表示できます。利用したoptionsは以下の通りです。
-h host     LDAP server name or IP address (default: localhost)
-p port     LDAP server TCP port number (default: 389)
-D binddn   bind dn
-w -        prompt for bind passwd (for simple authentication) パスワードを求めます
-f file     read modifications from file (default: standard input)
-a          追加を意味します(helpに無かった...)




1-2.LDIFファイルによる属性値の変更
LDIFファイルを作成します。
[root@dsee7m1 tmp]# vi change_roomNumber.ldif
[root@dsee7m1 tmp]# cat change_roomNumber.ldif
dn: uid=bassimane, ou=People, dc=example,dc=com
changetype:modify
replace: roomNumber
roomNumber: 4444

ldapmodifyコマンドで属性値を変更します。
[root@dsee7m1 tmp]# ldapmodify -h localhost -p 389 -D "cn=directory manager" -w - -f /tmp/change_roomNumber.ldif
Enter bind password:
modifying entry uid=bassimane, ou=People, dc=example,dc=com




1-3.LDIFファイルによる属性の削除
LDIFファイルを作成します。
[root@dsee7m1 tmp]# vi del_roomNumber.ldif
[root@dsee7m1 tmp]# cat del_roomNumber.ldif
dn: uid=bassimane, ou=People, dc=example,dc=com
changetype:modify
delete: roomNumber

ldapmodifyコマンドで属性を削除します。
[root@dsee7m1 tmp]# ldapmodify -h localhost -p 389 -D "cn=directory manager" -w - -f /tmp/del_roomNumber.ldif
Enter bind password:
modifying entry uid=bassimane, ou=People, dc=example,dc=com




1-4.LDIFファイルによる属性の追加
LDIFファイルを作成します。
[root@dsee7m1 tmp]# vi add_roomNumber.ldif
[root@dsee7m1 tmp]# cat add_roomNumber.ldif
dn: uid=bassimane, ou=People, dc=example,dc=com
changetype:modify
add: roomNumber
roomNumber: 3333

ldapmodifyコマンドで属性を追加します。
[root@dsee7m1 tmp]# ldapmodify -h localhost -p 389 -D "cn=directory manager" -w - -f /tmp/add_roomNumber.ldif
Enter bind password:
modifying entry uid=bassimane, ou=People, dc=example,dc=com




2.ldapsearchの使い方
2-1.一般的な検索
dc=example,dc=comを基点として、objectclass=*のフィルタに合致するエントリを最階層まで検索する
[root@dsee7m1 ~]# ldapsearch -b dc=example,dc=com -h localhost -p 389 -D "cn=directory manager" -w - -s sub objectclass=*
Enter bind password:
dn: dc=example,dc=com
objectClass: top
objectClass: domain
dc: example

dn: ou=Groups, dc=example,dc=com
objectClass: top
objectClass: organizationalunit
ou: Groups

dn: cn=Directory Administrators, ou=Groups, dc=example,dc=com
cn: Directory Administrators
objectClass: top
objectClass: groupofuniquenames
ou: Groups
uniqueMember: uid=kvaughan, ou=People, dc=example,dc=com
uniqueMember: uid=rdaugherty, ou=People, dc=example,dc=com
uniqueMember: uid=hmiller, ou=People, dc=example,dc=com

dn: ou=People, dc=example,dc=com
objectClass: top
objectClass: organizationalunit
ou: People
:
(省略)

ldapsearch -helpでヘルプが表示できます。利用したoptionsは以下の通りです。
-h host     LDAP server name or IP address (default: localhost)
-p port     LDAP server TCP port number (default: 389)
-D binddn   bind dn
-w -        prompt for bind passwd (for simple authentication) パスワードを求めます
-s scope    one of base, one, or sub (default is sub)




2-2.属性値に一致するエントリを表示する(uid=bassimane)
[root@dsee7m1 ~]# ldapsearch -b dc=example,dc=com -h localhost -p 389 -D "cn=directory manager" -w - -s sub uid=bassimane
Enter bind password:
version: 1
dn: uid=bassimane, ou=People, dc=example,dc=com
cn: Blog Assimane
sn: Assimane
givenName: Blog
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
ou: Product Development
ou: People
l: Sunnyvale
uid: bassimane
mail: bassimane@example.com
telephoneNumber: +1 408 555 1111
facsimileTelephoneNumber: +1 408 555 2222
userPassword: {SSHA}mY+g7ibootFnEoDCuQQrZ3Gye4/8XJldHwn/Ww==
roomNumber: 3333




2-3.属性値に一致するエントリで表示する属性を指定する(cn sn)
[root@dsee7m1 ~]# ldapsearch -b dc=example,dc=com -h localhost -p 389 -D "cn=directory manager" -w - -s sub l=Sunnyvale cn sn
Enter bind password:
version: 1
dn: uid=scarter, ou=People, dc=example,dc=com
cn: Sam Carter
sn: Carter

dn: uid=kvaughan, ou=People, dc=example,dc=com
cn: Kirsten Vaughan
sn: Vaughan

dn: uid=dmiller, ou=People, dc=example,dc=com
cn: David Miller
sn: Miller
:
(省略)




2-4.属性値の比較で「以上」で検索
[root@dsee7m1 ~]# ldapsearch -b dc=example,dc=com -h localhost -p 389 -D "cn=directory manager" -w - -s sub "roomNumber>=3000" cn sn roomNumber
Enter bind password:
version: 1
dn: uid=scarter, ou=People, dc=example,dc=com
cn: Sam Carter
sn: Carter
roomNumber: 4612

dn: uid=tmorris, ou=People, dc=example,dc=com
cn: Ted Morris
sn: Morris
roomNumber: 4117
:
(省略)

なお、「以下」は"roomNumber<=3000"とする




3.ldappasswdの使い方
3-1.パスワードのリセットの準備
ldappasswdがNo such objectのエラーとなります
[root@dsee7m1 ~]# ldappasswd -h localhost -p 389 -D "cn=directory manager" -w - -S "uid=bassimane, ou=People, dc=example,dc=com"
New Password:
Re-enter new Password:
Enter bind password:
ldap_passwd_s: No such object

/mps/serverroot/slapd-dsee7m1/logs/errorを参照すると、"oid=1.3.6.1.4.1.4203.1.11.1,cn=features,cn=config"が無い
[06/Aug/2012:09:50:57 +0900] conn=36 op=-1 msgId=-1 - fd=30 slot=30 LDAP connection from 127.0.0.1:54426 to 127.0.0.1
[06/Aug/2012:09:50:57 +0900] conn=36 op=0 msgId=1 - BIND dn="cn=directory manager" method=128 version=3
[06/Aug/2012:09:50:57 +0900] conn=36 op=1 msgId=2 - EXT oid="1.3.6.1.4.1.4203.1.11.1"
[06/Aug/2012:09:50:57 +0900] conn=36 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=directory manager"
[06/Aug/2012:09:50:57 +0900] conn=36 op=1 msgId=2 - RESULT err=32 tag=120 nentries=0 etime=0, Error in search for entry "oid=1.3.6.1.4.1.4203.1.11.1,cn=features,cn=config".
[06/Aug/2012:09:50:57 +0900] conn=36 op=2 msgId=3 - UNBIND
[06/Aug/2012:09:50:57 +0900] conn=36 op=2 msgId=-1 - closing from 127.0.0.1:54426 - U1 - Connection closed by unbind client -
[06/Aug/2012:09:50:58 +0900] conn=36 op=-1 msgId=-1 - closed.

LDIFファイルを作成します。
[root@dsee7m1 ~]# cd /tmp
[root@dsee7m1 tmp]# vi exop.ldif
[root@dsee7m1 tmp]# cat exop.ldif
dn: oid=1.3.6.1.4.1.4203.1.11.1,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid: 1.3.6.1.4.1.4203.1.11.1
cn: Password Modify Extended Operation
aci: (targetattr != "aci")
 (version 3.0; acl "Password Modify Extended Operation";
 allow( read, search, compare, proxy )
 (roledn = "ldap:///cn=Password Managers,dc=example,dc=com" and authmethod = "SSL");)

エントリを追加します。
[root@dsee7m1 tmp]# ldapmodify -a -D cn=admin,cn=Administrators,cn=config -w - -f exop.ldif
Enter bind password:
adding new entry oid=1.3.6.1.4.1.4203.1.11.1,cn=features,cn=config




3-2.パスワードのリセット
[root@dsee7m1 ~]# ldappasswd -h localhost -p 389 -D "cn=directory manager" -w - -S "uid=bassimane, ou=People, dc=example,dc=com"
New Password:
Re-enter new Password:
Enter bind password:
bin_ldappasswd: password successfully changed

ldappasswd -helpでヘルプが表示できます。利用したoptionsは以下の通りです。
-h host     LDAP server name or IP address (default: localhost)
-p port     LDAP server TCP port number (default: 389)
-D binddn   bind dn
-w -        prompt for bind passwd (for simple authentication) パスワードを求めます
-S          prompt for new password




4.ldapdeleteの使い方
4-1.エントリの削除
[root@dsee7m1 bin]# ldapdelete -h localhost -p 389 -D "cn=directory manager" -w - "uid=bassimane, ou=People, dc=example,dc=com"
Enter bind password:

ldapdelete -helpでヘルプが表示できます。利用したoptionsは以下の通りです。
-h host     LDAP server name or IP address (default: localhost)
-p port     LDAP server TCP port number (default: 389)
-D binddn   bind dn
-w -        prompt for bind passwd (for simple authentication) パスワードを求めます




次回もお楽しみに!!

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。