データベース

相談員友の会で 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 の知識がないせいか実際の作業は難航する。ドキュメンテーションも貧弱だし……。

一応 ProFTPDMySQL 経由で認証できるようにする。何回再起動したことやら ;-(

そして Courier-IMAPMySQL で認証できるようにする。MySQL の passwd() を使ったら Courier-IMAP 側で読めないこと(ProFTPD では Backend と指定すれば読める)に気がつくまでにかなりかかる。encrypt() で暗号化して authmysqlrc では MYSQL_CRYPT_PWFIELD を指定すればよい。

あとは PHP ウィザードの人がユーザ管理スクリプトを書いてくれれば……というのはだめだろうか ;-p