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 以外はちゃんと動いてます.