« PHP5.2.0 | メイン | 最近はまっているもの »

ProFTPdの時刻がずれる問題

FTP サーバの設定を変更しました。

FTP サービスは一般のユーザではchrootという機能が働いて、本来のサーバのファイルシステムを隠蔽しています。なので、一般ユーザの方がログインすると自分のホームディレクトリが/(root)に見えるはずです。拡張サービスを使っている方も同様です。

次に、FTPにアクセスしてログインしたりファイルを読み書きするとログが書き出されます。ここで書き込まれるアクセス時刻は、日本時間(JST)であるべきです。ですので、本来サーバソフトはサーバの現地時間設定ファイル(/etc/localtime)を読みに行って、時差(GMT+9時間)でもって、ログファイルに書き込みに行きます。
しかしながら、この現地時間設定ファイルはユーザディレクトリの外にあるため、アクセス出来ません。本来はアクセス出来る権限のあるプロセスが行うので問題ないのですが、glibc-2.3のバグによって出来なくなっていました。

長く書きましたが、これによってログに吐き出されるアクセス時刻がGMT(世界協定時)のままログに書き出されてしまっていました。私(管理者)はFTPでアクセスしても自由にディレクトリを移動出来るようにしているので、現地時間設定ファイルにもアクセス出来、気がつきませんでした。そのためログの時系列が目茶目茶になった挙句、ログが飛んでしまっていました。

これを修正するため、/etc/profile.d/tz.sh というファイルを作成し、そこでTZ環境変数を設定。

# echo 'export TZ=JST-9' > /etc/profile.d/tz.sh
# chmod 755 /etc/profile.d/tz.sh

proftpd.confに

TimesGMT false

offではどうも駄目のようです。

そして、反映させるために、一度サーバを再起動しました。
再起動の予定は無いと書きましたが、急いで修正する必要がありましたのでご理解ください。

ユーザサイドにおいては、サーバの時刻設定をGMT+9時間として頂きたいと思います。

FFFTPにおいては

06112101.PNG

このように設定して下さい。
設定がずれていると、サーバにアップロードしたファイルの時刻がずれて表示されます。

ついでと言ってはナニですが、identという認証に関わる機能を無効化しました。
今まではタイムアウト待ちになって、それから通常の認証となっていましたので、時間が掛かったかと思いますが、ログイン時間が短縮されていると思います。