ldapmodifyコマンドを使用してLDAPエントリを変更する
最近、インストールからエントリの追加、本格的なGUI管理ツールに至るまで、ライトウェイトディレクトリアクセスプロトコル(LDAP)に関する記事を数多く書きました(詳細については、GhacksのLDAPコンテンツを参照してください)。 LDAPについてよくわからないのは、IPネットワークに実装されているディレクトリサービスデータのクエリと変更を可能にするアプリケーションプロトコルです。基本的には、さまざまな形式の情報の複雑で大規模なディレクトリであり、さまざまな実装(会社のアドレス帳、アプリケーション認証など)に使用できます。
LDAPをインストールすると、すぐに、そのサーバーのデータを追加、編集、削除するためのツールがたくさんあります。これらのツールの1つは、データを最新に保つために重要です。そのツールは ldapmodify。 この記事では、このツールを使用してLDAPサーバーのエントリを変更する方法を紹介します。
コマンドの基本
ldapmodifyコマンドは、他のすべてのコマンドとまったく同じではありません。単一のコマンドを実行してそれで終了するのではなく、コマンドを発行し、作業を行って、コマンドから脱出します。コマンドをエスケープするまで、データの実際の変更は行われません。シーケンスは次のようになります。
- ldapmodifyコマンドを発行します(適切なオプションを使用)。
- 変更内容をldapmodifyに通知します。
- データを変更します。
- CTRL-dでエスケープします。
- ldapmodifyが変更を行います。
はい、それはかなり複雑なプロセスのように見えます...そして、はい、それは複雑ですが、非常に必要なプロセスです。
実際のプロセスを見てみましょう。例として、既存のディレクトリエントリのgecosエントリを変更します。 gecosエントリは、ほとんどすべてに使用できる一般的な情報フィールドです)。楽しみながら、ユーザーscooperのgecosエントリを変更して、シェルドンクーパーがカルテック大学の理論物理学者であることを示しましょう。 gecosエントリには「Sheldon Cooper」という情報のみが含まれ、LDAPサーバーは192.168.1.10にあり、完全なDCはwallen.localであると想定します。このタスクの実際のプロセスは次のとおりです。
次のコマンドを発行します。
ldapmodify -h localhost -x -W -D 'cn = admin、dc = wallen、dc = local'
コマンドが動かなくなったように見えます。実際には入力を待っているだけです。入力は次のようになります(各行の後でEnterキーを押します):
dn:uid = scooper、ou = People、dc = wallen、dc = local
changetype:変更
置き換え:gecos
gecos:カルテック大学の理論物理学者
このテキストの入力が完了したら、Enterキーを押し、次にCTRL-dキーを押してコマンドをエスケープすると、次のように表示されます。
エントリ「uid = scooper、ou = People、dc = wallen、dc = local」の変更
ここで、ldapsearchコマンドを発行すると、行われた変更が表示されます。 ldapsearchコマンドは次のようになります。
ldapsearch -x -b 'dc = wallen、dc = local' -s sub 'objectclass = *'
次のようなシェルドンのリストが表示されます。
#scooper、People、wallen.local
dn:uid = scooper、ou = People、dc = wallen、dc = local
uid:scooper
cn:シェルドンクーパー
objectClass:アカウント
objectClass:posixAccount
objectClass:top
loginShell:/ bin / bash
uidNumber:500
gidNumber:120
homeDirectory:/ home / scooper
gecos:理論物理学者カルテック大学
これでエントリが変更されました。もちろん、gecosエントリに限定されません。同じ手法を使用して、必要なエントリを実際に変更できます。
最終的な考え
うまくいけば、LDAPはますます簡単になっています。これで、エントリを追加および変更できます。掘り下げていき、最終的にLDAPの基本をマスターします。