工作需要在linux下搭建ftp服务,于是先安装vsftp-2.0.5.i386.rpm,使用命令:rpm -ivh vsftpd-2.0.5-16.el5_4.1.i386.rpm,出现错误:
error: Failed dependencies:
/lib/security/pam_loginuid.so is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.0) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.1) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.1.3) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.2) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.3) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.3.4) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libc.so.6(GLIBC_2.4) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libcap.so.1 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libcrypto.so.6 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libdl.so.2 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libnsl.so.1 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libpam.so.0 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libpam.so.0(LIBPAM_1.0) is needed by vsftpd-2.0.5-16.el5_4.1.i386
libssl.so.6 is needed by vsftpd-2.0.5-16.el5_4.1.i386
libwrap.so.0 is needed by vsftpd-2.0.5-16.el5_4.1.i386
一开始以为是关联包的问题,后来查了些资料,使用命令:rpm -Uvh --nodeps vsftpd-2.0.5-16.el5_4.1.i386.rpm
最后完成安装,不过原因,还不明朗,先记下,后面继续研究。
安装完成后,启动vsftpd的时候,出现错误:
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
看到这个错误,才想起自己linux是64位的,但是我装的是32位的vsftp。。。。。。o_O
所以,卸载吧:rpm -e vsftpd-2.0.5-16.el5_4.1.i386
重新找了个64位的vsftpd的rpm文件下载后安装,没有上面的错误,但是启动的时候,又遇到一个错误:
vsftpd: error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
看这错误,应该是少东西了,于是找了openssl的安装包继续装:rpm -ivh openssl098e-0.9.8e-17.SEL6.x86_64.rpm
安装完成后,再次启动,提示:vsftpd: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
使用命令:rpm -qa|grep libcap发现没有缺少补丁包,
使用命令:cd /lib64
ll |grep libcap
发现缺少链接文件“libcap.so.1”
下载rpm包进行安装:rpm -ivh compat-libcap1-1.10-1.x86_64.rpm
安装后继续启动,提示:500 OOPS: vsftpd: cannot open config file:start。。。。。。。。。
有点无奈~~居然说无法打开配置文件,使用cat命令,可以查看,于是试试全路径执行,法克,可以执行。。。。。。
折腾到现在,vsftpd安装了,ftp服务启动了。。。
之后创建用户:useradd ftpUser
passwd ftpUser
输入两次密码
通过浏览器访问ftp服务器:ftp://userName:password@ip:port
浏览器却弹出500 OOPS: cannot change directory:/home/ftpUser
这是因为SE设置的关闭了ftp的原因。 使用命令 getsebool ftpd_disable_trans 可以查看当前的状态如果不是on 那么是输入命令 setsebool ftpd_disable_trans 1 当然也可以加入-P参数 以便不需要每次开机都输入这个命令 set sebool -P ftpd_disable_trans 1
如果执行设置的时候出现Could not change active booleans: Invalid boolean
那么,需要先执行:setsebool ftp_home_dir on
修改后,需要重启服务:service vsftpd restart
-------------------------------------------------------------------------------------------
查看是否安装ftp:ps -ef|grep vsftpd
查看启动的服务列表:chkconfig --list
还有一点需要注意的是,启动vsftpd这个服务,我这边的环境,需要全路径才能启动,进入到/etc/init.d目录后再vsftpd start会报错,真奇怪。
在windows下访问ftp服务器超时的时候,如果两边互相ping的通,那么可能是Linux防火墙的问题,service iptabes stop,用此命令关上防火墙就可以了。