根据用户需要,对red hat5.4 64位的linux系统进行vsftp的升级。
1.使用源码升级(该升级方法是大关同志整理的,我拿来借用)
(1)升级需要安装的rpm包
rpm -Uvh libcap-2.16-5.5.el6.x86_64.rpm
rpm -Uvh libcap-devel-2.16-5.5.el6.x86_64.rpm
(2)创建源码安装需要的文件夹
mkdir -p /usr/local/vsftpd/conf/user
mkdir -p /usr/local/vsftpd/bin
mkdir -p /usr/local/vsftpd/lib
mkdir -p /usr/local/vsftpd/empty
mkdir -p /var/log/vsftpd
mkdir -p /home/ftp
touch /usr/local/vsftpd/conf/chroot
(3)查看vsftpd版本并卸载
rpm -qa vsftpd
rpm -e #vsftpd版本(4)解压缩安装
tar -zvxf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
make
make install
ldd vsftpd
cp vsftpd /usr/local/vsftpd/bin
cp vsftpd.conf /usr/local/vsftpd/conf
以上步骤很轻松的就完成,而且ftp服务也启动完毕,测试账户没有问题。但是其他账户出现了问题。
比如ftp账号:hwas 该账号的家(根)路径是/data/hwas,但是现在ftp登录后能够看到整个路径:/data/hwas
这就说明设置账号权限的配置文件出问题了,于是,我将/etc/vsftpd/vsftp.conf的配置文件进行了修改,重启ftp服务,测试还是不行。经过查找众多资料,修改配置重启服务还是没有解决问题。
最后趁着服务器闲时,将服务器重启,重启后,查看vsftpd的服务,发现没有该进程,说明服务启动失败,
使用chkconfig --list|grep ftp 结果
vsftpd 0:off 1:off 2:on 3:off 4:on 5:on 6:off
说明开机自动启动正常。
但是ftp 127.0.0.1提示 500 OOPS: could not bind listening IPv4 socket(应该是这个错误提示,原谅我没有记录这个错误,因为当时着急,没有记录而且是在半夜11点多)说明ftp服务还是启动了,只不过报错了。
根据提示继续百度(在国内只能靠百度了),还好有好多人遇到过,根据大家的说法,(终点来了)
是因为linux系统中ftp有二种启动模式,分别如下和对应的路径
1 service vsftpd start 配置文件路径是 /usr/local/vsftpd/conf/vsftpd.conf
2 /etc/init.d/xinetd start 配置文件路径是 /etc/vsftp/vsftpd.conf
我当时一直修改的是 /etc/vsftpd下的配置文件,但是使用service启动ftp的服务,导致启动方法和参数不搭边,所以无论怎么修改配置文件都都不好使。
这是个经验,让大家避免像我一样走弯路,能够直接的解决问题。
最后感谢 http://blog.sina.com.cn/s/blog_6238358c0100gl7l.html 点击打开链接附上3种常见的错误解决方法。
运行FTP时会发生的error:
Q:500 OOPS: tcp_wrappers is set to YES but no tcp wrapper support compiled in
A:tcp_wrappers是使用xinetd方式启动的,stand alone模式下在/etc/vsftpd.conf中禁掉它。
Q: 500 OOPS: could not bind listening IPv4 socket
A: 执行/etc/init.d/xinetd stop 停掉 xinetd,再启动vsftpd。
Q: 226 Transfer done (but failed to open directory)
A: /etc/vsftpd.conf中anon_world_readable_only=NO以消除告警