Linux起動時にLDAPサーバ問い合わせ失敗を繰り返す件

libnss-ldapを設定すると、Linux起動時に以下のようなメッセージが出力されることがある。

udevd[]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
udevd[]: nss_ldap: failed to bind to LDAP server ldaps://LDAPSERVER.HERE: Can't contact LDAP server
udevd[]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
udevd[]: nss_ldap: failed to bind to LDAP server ldaps://LDAPSERVER.HERE: Can't contact LDAP server
udevd[]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
udevd[]: nss_ldap: failed to bind to LDAP server ldaps://LDAPSERVER.HERE: Can't contact LDAP server
udevd[]: nss_ldap: reconnecting to LDAP server (sleeping 4 seconds)

これはLDAPサーバに接続しにいってるんだけど、NICが有効になっていないために接続できず、リトライを繰り返しているという状態。
で、そもそもなんで接続しにいってるかというと、/etc/udev/rules.d/91-permissions.rulesの記述に従ってユーザおよびグループを探すため。
通常LDAPを利用する場合、/etc/nsswitch.confでpasswdとgroupは以下のような感じになってると思う。

passwd:         compat ldap
group:          compat ldap

で、udevがユーザやグループを捜しにまず/etc/passwdやら/etc/groupをみるんだけども、見つからなかったらldapに問い合わせにいくわけで、上記の問題が発生する。
ということで、/etc/passwdやら/etc/groupでそれらが見つかればいい。
ということで以下を打ち込めばOK。

addgroup --system nvram
addgroup --system rdma
addgroup --system fuse
addgroup --system kvm
addgroup --system scanner
adduser --system --group --shell /usr/sbin/nologin --home /var/lib/tpm tss

ちなみにldapの方を先に参照するように設定していたりする場合は、udevdの起動よりも先にネットワークを起動しないとだめだろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>