新しくインストールしたマシン(FreeBSD)にcourier-imap 4.3.1をインストールしたときに設定ではまったので、自分用のメモとして残しておく。
courier-authlibの認証設定をおこない、Courier-imapに接続しようとすると次のエラーになる。
Account’s mailbox directory is not owned by the correct uid or gid
メーラから接続しても、手動で次のコマンドをたたいても同様。
telnet IP 143
0000 CAPABILITY
0001 LOGIN “ユーザ名” “パスワード”
いろいろ調べたところ、 Maildirのuidとgidが/etc/passwdと一致していないことが原因のようだ。
今まで特に気にせず正常動作しているサーバが何台かあるのだが、uidとgidが/etc/passwdと一致していたためエラーがでていなかったよう だ。今回はなぜか/etc/passwdに記載しているgidと、Maildirのgidが異なっていたためエラーになった。
結局 Maildir以下をchgrp して解決。
ちなみにソースコードではimapd.cのこのあたりでそのチェックを行っている。
if (atoi(p))
{
if ( buf.st_uid != geteuid() ||
buf.st_gid != getegid())
write_error_exit("Account's mailbox directory is not owned by the correct uid or gid");
}