TenForward

技術ブログ。はてなダイアリーから移転しました

Thunderbird と LDAP

と書くと,Thunderbird のアドレス帳を LDAP で,という話かと思うかも知れませんが,関係ありません.

全くやる必要はないのですが,LDAP リハビリを兼ねて,手元のマシンのユーザ認証を nss_ldap/pam_ldap 環境にしました.

すると,なんと Thunderbird が起動しません!! strace で追っかけてみると,

open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=821, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0
xb7197000
read(3, "#\n# hosts\t\tThis file describes a"..., 4096) = 821
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7197000, 4096)                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

一方,nsswitch.conf を書き換えて,普通に /etc/passwd を使うと,ちゃんと起動して

open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 7
fstat64(7, {st_mode=S_IFREG|0644, st_size=821, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0
xb7ee4000
read(7, "#\n# hosts\t\tThis file describes a"..., 4096) = 821
read(7, "", 4096)                       = 0
close(7)                                = 0
munmap(0xb7ee4000, 4096)                = 0
symlink("127.0.0.1:+19232", "/home/karma/.thunderbird/z70ss7mn.default/lock") = 0

という感じ.どちらも,ずーっと眺めてみると

connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)

こんなのが.もしかして? と nscd を起動すると,ちゃんと Thunderbird も起動するやん! なんでキャッシュするデーモンがいないと MUA が起動しないなんて作りになってんねん! (-_-#

どこか設定ボケてるのだろうか? もちろん Thunderbird 以外はちゃんと動いてます.