2006年2月15日
MySQL5の罠
別にアップデートしたくてしたわけではないんだけど、debianパッケージのバージョンが上がったんで仕方なくMySQL5に。そしたらSQL認証していたProftpdが認証失敗するようになった。
原因を調べてみたところ、どうやらMySQL4.1からpassword関数の挙動が変わって、それまで16文字のハッシュだったのが48文字に変更されたらしい。アップデート時に古い方の16文字ハッシュ吐くようにconfが変更されているが、Proftpdだと自動で新しい方のハッシュにしてしまうために認証で失敗していた模様。MySQLの中の人はpassword関数は内部用なんでアプリケーションで使うなボケとか言ってるなぁ……。
ProftpdはVer3で古い方も使えるようになってるらしいんだけど、まだRCなんでdebianパッケージになってなかったり……。
とりあえず、my.confいじって48文字ハッシュで試してみた。テスト用ユーザー作って認証通ることを確認。既存ユーザのパスワード全部登録しなおし面倒だ……。というかよくよく考えると、DBにアクセスできるの自分だけなんで暗号化しておく必要は全くないことに気付く。単にproftpd administratorが暗号化するようになってたんで、そのまま使ってただけだし、この際暗号化を外すことにした。class_database_mysql.phpをちょろちょろといじったらあっけなく白文で登録されるようになったんで、proftpd.confでplanetext認証に変更。これで上手くいったんで、全ユーザのパスワード書き換えて作業終了。
しかしこれ、ユーザーが10人もいない鯖何で全部手動でやったけど、普通にユーザーの居る鯖だと大変な作業だろうなぁ。
Posted by tilto at 2006年2月15日 19:52
コメントする