完全解决用命令行访问vsftpd服务器显示时间问题

在帮助一位电脑公司的朋友为他的客户安装基于Redhat AS4的vsftpd服务器时,发现了这一问题。

由于这个客户是某银联系统的用户,他们对应用的安全性和稳定性都有很高的要求,当系统安装完毕并进行测试时发现了一个现象。在服务器端查看用户创建文件的时间或客户端查看管理员在服务上创建的文件产生了时间的偏差,答案是在vsftpd.conf中加入use_local_time=YES。

但是经过尝试后出现了新的问题:当用户手动的再次重新启动vsftpd服务时出现了和原来完全一样的问题。

我再次和朋友一起到了用户那里并进行了测试,结果发现了一个从未有人提及过的问题:我们在启动vsftpd服务时有什么特殊的要求吗?下面是我们测试得出的结果,我相信这是一个重大的发现!

[root@localhost ~]# /etc/init.d/vsftpd restart (用这个命令时一切正常)

[root@localhost ~]# service vsftpd restart (用这个命令时出现时间问题)

经过了认真的思考,我们决定在环境变量中引入TZ变量,TZ=Asia/Shanghai,再次反复测试以上的任何一个命令都返回了正确的结果。

分析:当我们使用service这个命令时,由root用户驱动service并启动vsftpd,这时root环境变量的TZ就影响vsftpd服务而产生这样“奇怪”的现象。

建议:当时我在安装系统时选择的语言支持是English但是时区是Asia/Shanghai,如果今后朋友们只是为Local用户服务的话就完全选择中文支持吧。