目次
🔎 LDAPとは?
LDAP(Lightweight Directory Access Protocol) は、ユーザー情報や組織構造などの「ディレクトリデータ」をネットワーク経由で効率よく管理・検索するためのプロトコルです。
🧰 よく使うLDAPクライアントツール一覧
| コマンド | 用途 |
|---|---|
ldapsearch | ディレクトリ情報の検索・照会 |
ldapadd | データの追加 |
ldapmodify | 既存エントリの変更 |
ldapdelete | データの削除 |
ldappasswd | ユーザーのパスワード変更 |
これらのコマンドは、パッケージ ldap-utils(Debian系)や openldap-clients(RHEL系)でインストールされます。
# Debian/Ubuntu
sudo apt install ldap-utils
# RHEL/CentOS
sudo yum install openldap-clients
🔍 ldapsearch:LDAPディレクトリを照会する
ldapsearch はLDAPディレクトリにクエリを投げて、エントリの一覧や属性を確認するためのコマンドです。
ldapsearch -x -H ldap://localhost -b "dc=example,dc=com" "(uid=jsato)"
| オプション | 説明 |
|---|---|
-x | シンプルなバインド(SASL無し) |
-H | 接続先サーバーのURI |
-b | 検索のベースDN |
| 検索条件 | 例:(uid=jsato)(ユーザーIDがjsatoのデータを検索) |
➕ ldapadd:新しいエントリを追加する
新規ユーザーやグループを追加するには、LDIF(LDAP Data Interchange Format)ファイルを使います。
例:user.ldif
dn: uid=jsato,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
uid: jsato
sn: Sato
givenName: Jun
cn: Jun Sato
mail: jsato@example.com
userPassword: {SSHA}hashedpassword
コマンド:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif
🔧 ldapmodify:既存エントリを編集する
LDIF形式で変更内容を指定します。
例:メールアドレスの変更
dn: uid=jsato,ou=People,dc=example,dc=com
changetype: modify
replace: mail
mail: jun.sato@example.com
コマンド:
ldapmodify -x -D "cn=admin,dc=example,dc=com" -W -f change.ldif
❌ ldapdelete:エントリを削除する
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=jsato,ou=People,dc=example,dc=com"
削除する対象のDN(識別名)を直接指定します。
🔐 ldappasswd:ユーザーパスワードの変更
管理者による変更
ldappasswd -x -D "cn=admin,dc=example,dc=com" -W \
-S "uid=jsato,ou=People,dc=example,dc=com"
-S:新しいパスワードを対話式で入力
ユーザー本人による変更
ldappasswd -x -D "uid=jsato,ou=People,dc=example,dc=com" -W -A -S
-A:古いパスワードを対話式で入力-S:新しいパスワードを対話式で入力
📝 LDIFフォーマットのポイント
- 各属性は
属性名: 値形式で記述 dn:(識別名)が必須- 編集・削除の際は
changetypeの指定が必要 - 空白や改行に注意(インデント厳禁)
✅ まとめ
| タスク | コマンド |
|---|---|
| データ検索 | ldapsearch |
| データ追加 | ldapadd(LDIF) |
| データ編集 | ldapmodify(LDIF) |
| データ削除 | ldapdelete |
| パスワード変更 | ldappasswd |
LDAPクライアントツールを使いこなすことで、ユーザー管理やアクセス制御を効率化できます。サーバー側の設定と合わせて、クライアントの操作に慣れておくことが重要です。
コメント