安装vsFTP的的简单的方法:
先安装vsftp,通过系统本身的指令。
例如Redhat:
yum install vsftpd
yum install db4-utils
注意Redhat企业版需要先更新源!
例如Ubuntu:
sudo apt-get install vsftpd
然后下载最新的vsFTP的源代码( https://security.appspot.com/vsftpd.html#download ),请不要使用老的版本,老的版本可能有漏洞!
然后解压下载的源代码,进入源代码目录,运行
make clean
make
如果make出错,很可能是64位系统的问题,请参考: http://hi.baidu.com/yu_zhou2000/item/b41fd0cc04c47e0f0bd93a3d
解决vsftpd编译时的错误:could not read symbols: File in wrong format
编译vsftpd时,出现could not read symbols: File in wrong format错误提示,后搜寻相关资料,是因为vsftpd的一个安装文件没有考虑到64位平台库文件位置。
如果的的系统是64位平台,解决办法如下:
编辑源代码安装目录下的vsf_findlibs.sh, 将其中路径中的lib替换成lib64。
快速的vim替换命令是:
:%s?lib/?lib64/?
(需要检查是否完全替换)
如果检查系统是否为64位平台?
uname -m
如果输出 x86_64,说明是64位平台
或者
原因是x86_64环境下vsftpd源代码下的vsf_findlibs.sh没处理好库文件的调用关系;可手动修改vsf_findlibs.sh中的相关代码,或者是用下面的简单方式修改相关lib的链接
rm -f /lib/libpam.so.0 ---这里删除的是链接文件,放心
ln -s /lib64/libpam.so.0.77 /lib/libpam.so.0
1.2 /lib/libcap.so.1: could not read symbols: File in wrong format
因同样的原因引起,所以修改方式同上:
rm -f /lib/libcap.so.1
ln -s /lib64/libcap.so.1.10 /lib/libcap.so.1
以上修改后,再编译就不会报错。当然为了不引起其他程序调用lib出错,最好是将lib的相关链接改回去。
处理完后,重复上述make clean 和make命令。
make install
然后用生成的vsftpd文件,替换硬盘上原来的可执行程序/usr/sbin/vsftpd或者/usr/local/sbin/vsftpd,具体可以用locate查一下位置,然后替换即可使用最新版本的了。
之所以先安装系统的vsftp,是因为源代码本身不提供服务安装方式,先安装系统vsftp后,会在/etc/init.d/下生成vsftpd的服务配置文件!
最后自动启动服务:
chkconfig vsftpd on
也可以把附件直接放在/etc/init.d下,加上可执行属性: chmod +x /etc/init.d/vsftpd
然后运行 ln -s /etc/init.d/vsftpd /etc/rc.d/rc3.d/S60vsftpd
即可作为服务运行了。
vsftp的配置,百度知。
请参考: http://wiki.ubuntu.org.cn/Vsftpd%E8%99%9A%E6%8B%9F%E7%94%A8%E6%88%B7%E8%AE%BE%E7%BD%AE
上述适合vsftp 3.0.1+版本。
采用虚拟用户的vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to FTP server, Please login
chroot_local_user=YES
listen=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/user_conf
pam_service_name=vsftpd
secure_chroot_dir=/var/run/vsftpd
allow_writeable_chroot=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
每个虚拟用户的配置文件:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/walktour
注意用户的目录/home/vsftpd/walktour必须要有+x权限否则没法在客户端列出目录。
参考资料:
http://www.cnblogs.com/eastson/archive/2012/06/21/2556461.html