LDAPの導入

共用サーバではSSHFTPになんやらかんやらアカウントをたくさん管理せねばならず、どうにも面倒…
そんな悩みを解決してくれるLDAPというツールがあるという情報を小耳に挟んだ。

LDAPとは…

エルダップ
LDAP 【 Lightweight Directory Access Protocol 】

インターネットやイントラネットなどのTCP/IPネットワークで、ディレクトリデータベースにアクセスするためのプロトコルディレクトリサービスとは、ネットワークを利用するユーザのメールアドレスや環境に関する情報を管理するサービスのことで、ユーザ名からこれらの情報を検索することができる。最近ではディレクトリサービスを単純なユーザ管理だけでなく、プリンタなどのネットワーク上の共有資源の管理に応用する動きも活発になっている。
【引用元】LDAPとは 【 Lightweight Directory Access Protocol 】 - 意味/解説/説明/定義 : IT用語辞典

わからん…orz

ざっくりとした理解では、様々なアカウントを一元管理できる夢のツール、ということらしい。
とりあえず使いながら理解しようということで、下の記事を参考にしながら導入しようとした。

第1回 まずは使ってみよう:そろそろLDAPにしてみないか?|gihyo.jp … 技術評論社

しかしうまくいかない…

以下、ハマったところをピックアップする。
OSはCentOS 6.2です。

図4の「ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f passwd.ldif adding new entry "dc=example,dc=com"」を実行しようとすると「ldap_bind: Invalid credentials (49)」という謎のエラーが出る

Invalid credentials (49)というエラーは、

  1. パスワードを間違えている
  2. コマンドラインの DN を間違えている

ときに発生するらしい。
僕はこの記事の流れに沿ってやる前にslappasswdやらなんやら色々弄っていて、パスワードがおかしくなっていたと思われるので、それをリセットしなければならない。
そんなときは強制リセット♪

$ rm -rf /etc/openldap/slapd.d/
$ /etc/rc.d/init.d/slapd restart

男なら黙ってrm。僕はこれでうまく動くようになりました。

authconfigを実行するとUnicodeDecodeError等Pythonのランタイムエラーが発生する

CUIのオプションの指定方法がよくわからないので、authconfig-tuiコマンドを実行しましょう。
ちなみに、authconfigでエラーが出るのは日本語環境なのが原因なので、どうしても使いたければ英語環境に強引にすればいいらしいです。

$ LANG=en_US.UTF-8 authconfig

なんかパッケージが足りない…?

インストールです。

$ yum -y install nss-pam-ldapd

終わりに

書き出してみたらしょうもないことだらけだった。反省。

ちなみに、ldapのデーモンの名前はslapdらしい。
紛らわしすぎる。爆発してくれ

まだまだLDAPを理解したと言うにはほど遠すぎるので、gihyoのチュートリアルを回そうっと。