相談員友の会で ftp を使えるようにしてほしいという要請があったので、まじめにデータベースの設定をする。要請がなければ Postfix は hash、Courier-IMAP は userdb、ProFTPD は /etc/passwd というてんでばらばらの管理をしていて、設計した本人(自分)もいったいどこをいじればいいのか分からないという惨状だった ;-(
# だから一応使えたのだがあまりアナウンスしてなかった
そこで OpenLDAP と戯れる……はずだったがうまくいかない。そういえば前もうまくいかず途中で挫折したのだった。なぜか slapd が起動せず(正確には起動するがつなげず、telnet localhost ldap とすると slapd につながったあと slapd が終了する)、ldapsearch が使えなくて放棄する。
やはり MySQL ですな。いまの時代は。今回はよく調べて ProFTPD でも Postfix でもCourier-IMAP でも Apache でも使えるデータベースを最初から紙の上に設計してからかかったので、見通しよくできる。pam_mysql を使えばなんだってできそうだ。
しかし SQL の知識がないせいか実際の作業は難航する。ドキュメンテーションも貧弱だし……。
一応 ProFTPD を MySQL 経由で認証できるようにする。何回再起動したことやら ;-(
そして Courier-IMAP も MySQL で認証できるようにする。MySQL の passwd() を使ったら Courier-IMAP 側で読めないこと(ProFTPD では Backend と指定すれば読める)に気がつくまでにかなりかかる。encrypt() で暗号化して authmysqlrc では MYSQL_CRYPT_PWFIELD を指定すればよい。