LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2292|回复: 3

vsftpd-2.0.6编码补丁

[复制链接]
发表于 2008-5-24 17:15:55 | 显示全部楼层 |阅读模式
在网上搜了还一下,貌似最新只有2.0.5的,所以根据blance的在这个帖子中发布的2.0.5的补丁做了个2.0.6的

打了补丁后在配置文件中可以使用新增的三个属性:

  1. # 开启编码转换功能
  2. charset_filter_enable=YES
  3. # 传给客户端的编码
  4. charset_client=GBK
  5. # 本机编码
  6. charset_server=UTF8
复制代码


已知问题:
在客户端登录时依然会在211中发出UTF8,使得支持这一特性的FTP客户端(例如lftp和Windows的Explorer)反而会乱码

补丁使用方法:
将补丁解压到vstfpd-2.0.6的源代码目录下,输入

  1. patch -p1 < vsftpd-2.0.6-encoding.patch
复制代码

然后编译:
  1. make
复制代码

如果编译错误,可能是缺少以下开发包:libpam0g-dev libcap-dev libwrap0-dev libssl-dev(以上是Ubuntu中的包名,其他发行版中的可能有所不同)
然后理论上应该是执行如下内容(要以root身份执行):
  1. make install
复制代码

但是和我的Ubuntu中的vsftpd有冲突,所以说说它会干什么,再根据实际情况判断用不用吧:
使用make install后,其实是执行三个操作:
1、将vsftpd复制到/usr/local/sbin/vsftpd
2、设置vsftpd的xinetd配置文件
3、复制manpage文件
这三点在Ubuntu中可能会导致如下问题(其他系统请根据实际情况判断)
1、Ubuntu的init.d中使用的vsftpd是安装在/usr/sbin中的(前提是之前装了vsftpd)
2、Ubuntu使用服务而不是xinetd来启动vsftpd
3、Ubuntu的manpage文件地址与它复制的路径不同
所以在Ubuntu下,如果之前通过apt-get安装过vsftpd的话,直接把编译生成的vsftpd复制到/usr/sbin下就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-5-25 00:23:03 | 显示全部楼层
可能这会引入文件不可大于4G的限制。
我以前也用vsftpd的,后来就是因为encoding的补丁导致文件不能大于4G后改用proftpd的。
建议楼主试一下会不会导致4G以上的文件显示不出来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-25 11:04:12 | 显示全部楼层
汗,还有这问题,多谢提醒
不过我得找到个4G大的文件先,不想自己tar一个……
回复 支持 反对

使用道具 举报

发表于 2010-6-10 16:20:58 | 显示全部楼层
Post by acevery;1854584
可能这会引入文件不可大于4G的限制。
我以前也用vsftpd的,后来就是因为encoding的补丁导致文件不能大于4G后改用proftpd的。
建议楼主试一下会不会导致4G以上的文件显示不出来。

呵呵,那就建议直接修改vsftpd的内部代码吧,
应该是补丁引入了bug。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表