ldapmodifyコマンドを使用してLDAPエントリを変更する

最近、インストールからエントリの追加、本格的なGUI管理ツールに至るまで、ライトウェイトディレクトリアクセスプロトコル(LDAP)に関する記事を数多く書きました(詳細については、GhacksのLDAPコンテンツを参照してください)。 LDAPについてよくわからないのは、IPネットワークに実装されているディレクトリサービスデータのクエリと変更を可能にするアプリケーションプロトコルです。基本的には、さまざまな形式の情報の複雑で大規模なディレクトリであり、さまざまな実装(会社のアドレス帳、アプリケーション認証など)に使用できます。

LDAPをインストールすると、すぐに、そのサーバーのデータを追加、編集、削除するためのツールがたくさんあります。これらのツールの1つは、データを最新に保つために重要です。そのツールは ldapmodify。 この記事では、このツールを使用してLDAPサーバーのエントリを変更する方法を紹介します。

コマンドの基本

ldapmodifyコマンドは、他のすべてのコマンドとまったく同じではありません。単一のコマンドを実行してそれで終了するのではなく、コマンドを発行し、作業を行って、コマンドから脱出します。コマンドをエスケープするまで、データの実際の変更は行われません。シーケンスは次のようになります。

  1. ldapmodifyコマンドを発行します(適切なオプションを使用)。
  2. 変更内容をldapmodifyに通知します。
  3. データを変更します。
  4. CTRL-dでエスケープします。
  5. 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の基本をマスターします。