2009/10/28

LDAP認証:CentOSでやってはいけない設定

CentOS 5.3, 5.4で試したのですが、nsswitch.confに以下の設定を入れてしまうと、事実上起動途中でシステムがハングアップしてしまいます。

group:          ldap files

"ldap"に登録されていない情報をローカルに見に行くというところが原因で、パフォーマンスの観点からもお勧めはできない設定です。

ただUbuntuでは、この設定でLDAPサーバーに接続できないエラーが大量に出力されますが、無事に起動します。 CentOSでは"bind_policy soft"にするとUbuntuと同じような挙動になり、起動はできるようになりました。Ubuntuはデフォルトの"bind_policy hard"で動くんですけどね…。

とりあえず復旧するためには、CentOSのインストールDVDから起動してboot:に続いてlinux rescueと打って復旧モードで起動してnsswitch.confファイルを元に戻すのがお勧めです。

インストールDVDを使わなくてもシングルユーザーモードで起動するようにして、udevの初期化途中でC-cを何回か連打すればシェルに落ちると思いますが、ファイルシステム壊しそうでお勧めできないですね。

Ubuntuで挙動が違う原因はlibnss-ldapのdebパッケージに適用されているパッチにあるようです。 リトライ回数などが変更されているので、おそらくその影響でしょう。これだとCentOSも時間をかければ起動しそうですが、一回つまずく毎に相当待たされるので確認するのは辞めておきます。

2 件のコメント:

匿名 さんのコメント...

いつも参考にさせていただいています。

ldapを最初に検索するのではなく、
 group: files ldap
とすれば、問題ないはずです。

当方、GUI、管理ツールでの設定は、
基本的におこなっていません。
CentOSの管理GUIで設定すると、ldapが
先になってしまうのでしょうか?

YasuhiroABE さんのコメント...

コメントありがとうございます。

しばらく前のことなので、はっきりとは覚えていませんが、これは手動でこの設定を試した時にUbuntuと挙動が違うことに気がついて書いたものだと思います。

ご指摘の通り通常は先頭のfilesを外す事はないと思います。

興味本位で試すと面倒なことになる、そんな風に読んで頂ければ幸いです。