![見出し画像](https://assets.st-note.com/production/uploads/images/115861446/rectangle_large_type_2_992d35d75cd4676119317daa7df67610.png?width=1200)
Appendix OpenLDAPの設定 slapd-config
OpenLDAPの設定方法
~slapd.confを編集する~
slapd.confを編集してslapdサービスを再起動する。
この方法はOpenLDAP2.3から非推奨となっている。
~slapd-configを使う~
OpenLDAP2.3からサポートされた方法。
slapd(OpenLDAPサーバー)を再起動することなく設定が動的に反映される。
slapdの設定ファイルは/etc/openldap/slapd.d以下にテキストファイルで格納されているが、これを直接編集することはできずLDIFファイルを作成しldapadd、ldapdelete、ldapmodifyコマンドを使って設定する。
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# ls -la /etc/openldap/slapd.d
合計 5
drwxr-x--- 3 ldap ldap 4 5月 26 22:57 .
drwxr-xr-x 5 root root 7 5月 26 22:57 ..
drwxr-x--- 3 ldap ldap 8 5月 26 22:57 'cn=config'
-rw------- 1 ldap ldap 366 5月 26 22:57 'cn=config.ldif'
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# tree /etc/openldap/slapd.d
/etc/openldap/slapd.d
├─ cn=config
│ ├─ cn=schema
│ │ └─ cn={0}core.ldif
│ ├─ cn=schema.ldif
│ ├─ olcDatabase={-1}frontend.ldif
│ ├─ olcDatabase={0}config.ldif
│ ├─ olcDatabase={1}monitor.ldif
│ └─ olcDatabase={2}mdb.ldif
└─ cn=config.ldif
2 directories, 7 files
[root@rocky9-ldap21 ~]#
初期設定
以下の操作例ではslapd-configを使った設定方法をご紹介します。
設定を記述したLDIFファイルの保存場所は任意ですが、以下操作例では/etc/openldapに保存をすることにします。
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# cd /etc/openldap/
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# pwd
/etc/openldap
[root@rocky9-ldap21 openldap]#
★ 初期設定前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -la
合計 12
drwxr-xr-x 5 root root 7 9月 10 23:41 .
drwxr-xr-x 65 root root 149 9月 10 23:41 ..
drwxr-xr-x 2 root root 2 11月 1 2022 certs
-rw-r--r-- 1 root root 121 9月 21 2022 check_password.conf
-rw-r--r-- 1 root root 900 11月 1 2022 ldap.conf
drwxr-xr-x 2 root root 32 9月 10 23:41 schema
drwxr-x--- 3 ldap ldap 4 9月 21 2022 slapd.d
[root@rocky9-ldap21 openldap]#
★ 初期設定後(setup-*.ldifが追加されている) ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -la
合計 17
drwxr-xr-x 5 root root 12 9月 11 01:42 .
drwxr-xr-x 65 root root 150 9月 11 00:17 ..
drwxr-xr-x 2 root root 2 11月 1 2022 certs
-rw-r--r-- 1 root root 121 9月 21 2022 check_password.conf
-rw-r--r-- 1 root root 900 11月 1 2022 ldap.conf
drwxr-xr-x 2 root root 32 9月 10 23:41 schema
-rw-r--r-- 1 root root 452 9月 11 01:42 setup-adduser-user00.ldif
-rw-r--r-- 1 root root 678 9月 11 01:07 setup-domain-mdb.ldif
-rw-r--r-- 1 root root 237 9月 11 01:03 setup-domain-monitor.ldif
-rw-r--r-- 1 root root 395 9月 11 01:33 setup-domaintree.ldif
-rw-r--r-- 1 root root 120 9月 10 23:56 setup-rootpw.ldif
drwxr-x--- 3 ldap ldap 4 9月 21 2022 slapd.d
[root@rocky9-ldap21 openldap]#
管理者パスワードの設定
管理者パスワードを設定するにはslappasswdコマンドで暗号化されたパスワードを生成します。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP
[root@rocky9-ldap21 openldap]#
LDIFファイルを作成します。
olcRootPW: にslappasswdコマンドで生成したパスワードを設定します。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-rootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP <---★slappasswdで生成したパスワード
[root@rocky9-ldap21 openldap]#
ldapmodifyコマンドで設定変更をします。
ldapsearchコマンドで変更前後の確認ができる。
★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={0}config,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth" manage by * none
[root@rocky9-ldap21 openldap]#
★ ldapmodifyコマンドで設定変更 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-rootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
[root@rocky9-ldap21 openldap]#
★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={0}config,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth" manage by * none
olcRootPW: {SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP <---★追加された
[root@rocky9-ldap21 openldap]#
スキーマを追加する
スキーマとは、OpenLDAPで管理できる項目を事前に定義したもの。
用途に応じてスキーマを追加することでOpenLDAPで管理できる情報を拡張することができる。
OpenLDAPのパッケージをインストールすると/etc/openldap/schemaディレクトリに格納されているが、オリジナルのスキーマを作成して拡張することもできる。
ユーザー名、パスワード、メールアドレスなどの一般的なユーザー情報であればcosine、inetorgperson、nisで対応可能。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -l /etc/openldap/schema/
合計 169
-r--r--r-- 1 root root 2036 5月 4 2022 collective.ldif
-r--r--r-- 1 root root 6191 5月 4 2022 collective.schema
-r--r--r-- 1 root root 1845 5月 4 2022 corba.ldif
-r--r--r-- 1 root root 8063 5月 4 2022 corba.schema
-r--r--r-- 1 root root 20619 5月 4 2022 core.ldif
-r--r--r-- 1 root root 20506 5月 4 2022 core.schema
-r--r--r-- 1 root root 12006 5月 4 2022 cosine.ldif
-r--r--r-- 1 root root 73995 5月 4 2022 cosine.schema
-r--r--r-- 1 root root 3594 5月 4 2022 dsee.ldif
-r--r--r-- 1 root root 3374 5月 4 2022 dsee.schema
-r--r--r-- 1 root root 4842 5月 4 2022 duaconf.ldif
-r--r--r-- 1 root root 10389 5月 4 2022 duaconf.schema
-r--r--r-- 1 root root 3500 5月 4 2022 dyngroup.ldif
-r--r--r-- 1 root root 3523 5月 4 2022 dyngroup.schema
-r--r--r-- 1 root root 3481 5月 4 2022 inetorgperson.ldif
-r--r--r-- 1 root root 6267 5月 4 2022 inetorgperson.schema
-r--r--r-- 1 root root 2979 5月 4 2022 java.ldif
-r--r--r-- 1 root root 13901 5月 4 2022 java.schema
-r--r--r-- 1 root root 2082 5月 4 2022 misc.ldif
-r--r--r-- 1 root root 2387 5月 4 2022 misc.schema
-r--r--r-- 1 root root 121865 5月 4 2022 msuser.ldif
-r--r--r-- 1 root root 113752 5月 4 2022 msuser.schema
-r--r--r-- 1 root root 1218 5月 4 2022 namedobject.ldif
-r--r--r-- 1 root root 1574 5月 4 2022 namedobject.schema
-r--r--r-- 1 root root 6809 5月 4 2022 nis.ldif
-r--r--r-- 1 root root 7640 5月 4 2022 nis.schema
-r--r--r-- 1 root root 3308 5月 4 2022 openldap.ldif
-r--r--r-- 1 root root 1514 5月 4 2022 openldap.schema
-r--r--r-- 1 root root 6904 5月 4 2022 pmi.ldif
-r--r--r-- 1 root root 20467 5月 4 2022 pmi.schema
[root@rocky9-ldap21 openldap]#
ldapaddコマンドでスキーマの追加が可能。
どのスキーマが使われているかはldapsearchコマンドで確認できる。
★ スキーマ追加前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=schema,cn=config" dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
[root@rocky9-ldap21 openldap]#
★ ldapmodifyコマンドでスキーマを追加する ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"
[root@rocky9-ldap21 openldap]#
★ スキーマ追加後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=schema,cn=config" dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config <---★追加された
dn: cn={2}inetorgperson,cn=schema,cn=config <---★追加された
dn: cn={3}nis,cn=schema,cn=config <---★追加された
[root@rocky9-ldap21 openldap]#
ドメインを定義する
OpenLDAPで管理するドメインを定義する。
以下の操作では、ドメインは example.co.jp、ドメイン管理者のユーザー名はManagerとしている。
なお、LDAPではexample.co.jpというドメインをdc=example,dc=co,dc=jpと表記する。
また、ドメイン管理者のManagerはcn=Manager,dc=example,dc=co,dc=jpと表記する。
まず、ドメイン管理者のパスワードをslappasswdコマンドで生成する。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph
[root@rocky9-ldap21 openldap]#
LDIFファイルを作成します。
olcRootPW: にslappasswdコマンドで生成したパスワードを設定します。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domain-monitor.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.base="cn=Manager,dc=example,dc=co,dc=jp" read
by * none
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domain-mdb.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=co,dc=jp
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=co,dc=jp
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph <---★slappasswdで生成したパスワード
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
by dn="cn=Manager,dc=example,dc=co,dc=jp" write
by anonymous auth
by self write
by * none
olcAccess: {1}to dn.base=""
by * read
olcAccess: {2}to *
by dn="cn=Manager,dc=example,dc=co,dc=jp" write
by * read
[root@rocky9-ldap21 openldap]#
ldapmodifyコマンドで設定変更をします。
★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}monitor,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={2}hdb,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
No such object (32)
Matched DN: cn=config
[root@rocky9-ldap21 openldap]#
★ ldapmodifyコマンドでドメインを設定する ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-domain-monitor.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-domain-mdb.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}mdb,cn=config"
modifying entry "olcDatabase={2}mdb,cn=config"
modifying entry "olcDatabase={2}mdb,cn=config"
modifying entry "olcDatabase={2}mdb,cn=config"
[root@rocky9-ldap21 openldap]#
★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}monitor,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
,cn=auth" read by dn.base="cn=Manager,dc=example,dc=co,dc=jp" read by * none
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={2}mdb,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={2}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {2}mdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcSuffix: dc=example,dc=co,dc=jp
olcRootDN: cn=Manager,dc=example,dc=co,dc=jp
olcRootPW: {SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=exam
ple,dc=co,dc=jp" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=co,dc=jp" write by * read
[root@rocky9-ldap21 openldap]#
初期データの投入
ここからはslapd.confと同じ
ドメインツリーを定義する
管理するドメインの情報を格納するツリー構造を定義する。
以下の操作例ではユーザー情報をou=Users,dc=example,dc=co,dc=jpに、グループ情報をou=Groups,dc=example,dc=co,dc=jpに格納するように 定義している。
LDIFファイルを作成します。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domaintree.ldif
dn: dc=example,dc=co,dc=jp
objectClass: top
objectClass: dcObject
objectclass: organization
o: example.co.jp
dc: example
dn: cn=Manager,dc=example,dc=co,dc=jp
objectClass: organizationalRole
cn: Manager
description: OpenLDAP Manager
dn: ou=Users,dc=example,dc=co,dc=jp
objectClass: organizationalUnit
ou: Users
dn: ou=Groups,dc=example,dc=co,dc=jp
objectClass: organizationalUnit
ou: Groups
[root@rocky9-ldap21 openldap]#
ldapaddコマンドで設定追加をします。
★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" ou
No such object (32)
[root@rocky9-ldap21 openldap]#
★ ldapaddコマンドでドメインツリーを定義 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -f setup-domaintree.ldif
Enter LDAP Password: ********
adding new entry "dc=example,dc=co,dc=jp"
adding new entry "cn=Manager,dc=example,dc=co,dc=jp"
adding new entry "ou=Users,dc=example,dc=co,dc=jp"
adding new entry "ou=Groups,dc=example,dc=co,dc=jp"
[root@rocky9-ldap21 openldap]#
★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" ou
dn: dc=example,dc=co,dc=jp
dn: cn=Manager,dc=example,dc=co,dc=jp
dn: ou=Users,dc=example,dc=co,dc=jp
ou: Users
dn: ou=Groups,dc=example,dc=co,dc=jp
ou: Groups
[root@rocky9-ldap21 openldap]#
ユーザーを追加する
ドメイン管理者の定義、ドメインの定義、ドメインツリーの定義が完了したのでユーザーを追加してみる。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}eLOuc3SirH8ip2GPLtLIhQtkDtAR3AlG
[root@rocky9-ldap21 openldap]#
LDIFファイルを作成します。
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-adduser-user00.ldif
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword: {SSHA}eLOuc3SirH8ip2GPLtLIhQtkDtAR3AlG
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
dn: cn=user00,ou=Groups,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: user00
gidNumber: 1000
memberUid: user00
[root@rocky9-ldap21 openldap]#
ldapaddでユーザーを追加します。
★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" uid=user00
Enter LDAP Password: ********
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" cn=user00
Enter LDAP Password: ********
[root@rocky9-ldap21 openldap]#
★ ldapaddコマンドでユーザーを追加 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -f setup-adduser-user00.ldif
Enter LDAP Password: ********
adding new entry "uid=user00,ou=Users,dc=example,dc=co,dc=jp"
adding new entry "cn=user00,ou=Groups,dc=example,dc=co,dc=jp"
[root@rocky9-ldap21 openldap]#
★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" uidNumber=1000
Enter LDAP Password: ********
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword:: e1NTSEF9ZUxPdWMzU2lySDhpcDJHUEx0TEloUXRrRHRBUjNBbEc=
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
uid: user00
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" gidNumber=1000
Enter LDAP Password: ********
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword:: e1NTSEF9ZUxPdWMzU2lySDhpcDJHUEx0TEloUXRrRHRBUjNBbEc=
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
uid: user00
dn: cn=user00,ou=Groups,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: user00
gidNumber: 1000
memberUid: user00
[root@rocky9-ldap21 openldap]#
補足(1) ldapコマンド
ldapadd、ldapmodify、ldapsearchコマンドのオプションについて
~ldapadd、ldapmodify~
-Y EXTERNAL
EXTERNALメカニズムでSASLバインド(セキュアな接続)を試みる。-x
SASLの代わりに簡易認証を使う。-W
-xオプションで簡易認証を使用する際にパスワード入力を求める。-w
-xオプションで簡易認証を使用する際にコマンドのオプションとしてパスワードを指定する。-H
バインドするサーバーを指定する。
ローカルホストの場合:ldapi:///
リモートホストの場合:ldap://ip.add.re.ss:port/-D
バインド(接続)するDN(Distinguished Name:識別名)を指定する。-f
読み込むLDIFファイルを指定する。
~ldapsearch~
-LLL
コマンド結果の出力にLDIFバージョンなどのヘッダ情報を表示させない。-Y EXTERNAL
EXTERNALメカニズムでSASLバインド(セキュアな接続)を試みる。-x
SASLの代わりに簡易認証を使う。-W
-xオプションで簡易認証を使用する際にパスワード入力を求める。-w
-xオプションで簡易認証を使用する際にコマンドのオプションとしてパスワードを指定する。-H
バインドするサーバーを指定する。
ローカルホストの場合:ldapi:///
リモートホストの場合:ldap://ip.add.re.ss:port/-D
バインド(接続)するDNを指定する。-b
検索の起点となるDNを指定する。フィルタ
検索対象を絞り込むフィルタを指定する。
補足(2) DB_CONFIG
CentOS7ではOpenLDAPのデータベースにhdbを使っているためチューニングするためのDB_CONFIGファイルがないと起動時にエラーになるが、Rocky9のOpenLDAP2.6ではデータベースにチューニング不要のmdbが使われているためDB_CONFIGファイルがなくても問題なく起動できる。
★ CentOS7の場合 ★
[root@centos7 ~]#
[root@centos7 ~]# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@centos7 ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@centos7 ~]#
または
[root@centos7 ~]#
[root@centos7 ~]# touch /var/lib/ldap/DB_CONFIG
[root@centos7 ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@centos7 ~]#