Pure-FTPD严重bug吗????
发布时间:2014-01-09 21:23:20来源:红联作者:
大家好:
最近我在使用Pure-FTPD,发现一个很棘手的问题,跪求群中高手答疑释疑:
====================================================================
服务器环境:
Kernel Version:2.6.32-131.0.15.el6.i686
Linux Issue Version: Red Hat Enterprise Linux Server release 6.1 (Santiago)
Pure-ftpd Version :pure-ftpd-1.0.36-1.el6.rf.i686
(1)文件变小,被截断了?
1)调整配置选项 KeepAllFile yes 和 NoTruncated yes
使用FtpClient上传一个大约200MB的文件,上传150MB后,人为手动停止传输,过一段时间后,使用FtpClient以续传的方式的继续上传该文件,上传结束后,文件却只有50MB。
2)调整KeepAllFile no 和NoTruncated yes
使用两个FTPClient向服务器上传文件。Client1,先上传,上传一段时间后(此时文件还未上传完成),Client2使用相同的用户名登陆,向服务器的相同目录上传该问题,此时Client2,list时无法看到Client1正在上传的文件。Client2如果选择断点续传的方式上传时,会收到550 文件不可用提示。此时如果中断Client1的传输,Client2选择断点续传,则会出现和1)一样的问题,文件好像被截断了。
(2)文件变大
3)调整KeepAllFile no和NoTruncate no
使用两个FTP Client向服务器同一目录上传文件。Client1先上传一段时间(此时文件还未上传完毕),此时Client2,开始上传,使用list获取文件类表时,能看见正在Client1的文件,此时Client2经过判断,需要使用断点续传该文件,Client1和Client2完成上传后,发现服务器上的文件比本地的文件大一些。
4)调整KeepAllFile yes 和NoTruncated no
使用两个FTP Client向服务器同一目录上传文件。操作同3),结果也是文件变大。
疑问:对于一般的文件系统来讲,当一个进程正在写一个文件时,其他进程是只能读该文件,而不能写该文件(该机制一般称之为文件锁 file lock)并且其他进程应该能收到通知,对于FTP服务来讲,应该回550 文件不可用,可是Pure-FTPD却都可以上传,最终文件写的很大。
【附录】
配置文件 /etc/pure-ftpd/pure-ftpd.conf见下:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 10000
Daemonize no
MaxClientsPerIP 100
VerboseLog yes
DisplayDotFiles no
AnonymousOnly no
NoAnonymous yes
SyslogFacility ftp
DontResolve yes
MaxIdleTime 10
PAMAuthentication no
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
LimitRecursion 10000 8
AnonymousCanCreateDirs no
MaxLoad 4
PassivePortRange 10000 20000
AntiWarez yes
Bind *,21
Umask 133:022
MinUID 500
UseFtpUsers no
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload yes
AltLog clf:/var/log/pureftpd.log
NoChmod yes
CreateHomeDir yes
MaxDiskUsage 99
CustomerProof yes
TLS 1
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
CreateHomeDir yes
#KeepAllFiles yes
NoTruncate yes