安装环境
OS:Centos 6.4
vsftp:vsftpd-2.2.2-11.el6_3.1.i686.rpm
vsftpd配置文件:/etc/vsftpd/vsftpd.conf
一、 使用匿名用户访问
(1)安装完成后,只需要启动vsftp服务,就可使用匿名anonymous用户访问ftp
anonymous_enable=YES(默认) 这行配置就是开启关闭匿名访问功能,此时已具备下载功能
ps:匿名用户目录-/var/ftp/pub drwxr-xr-x. 2 root root
(2)此时的anonyous用户是没有上传以及创建目录的权限
取消以下两行的注释:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
然后进行测试上传功能和创建目录,结果却提示执行失败,这是由于/var/ftp/pub该目录的其他人没有写权限,使用chmod+x /var/ftp/pub,加上权限
ps:加上写权限后,配置文件的功能可能并不像想象中那么好用
二、 使用本地用户访问
(1) 创建本地用户
useradd ftp1
passwd ftp1
或创建不能登录的本地用户
useradd ftp2 –s /sbin/nologin
passwd ftp2
(2) 本地用户权限
local_enable=YES (默认) 开启本地用户访问
write_enable=YES(默认) 开启写权限,若关闭,则上传与创建目录功能不能使用
(3) 然后用创建的本地用户访问,结果访问失败
提示:
响应: 331 Please specify the password.
命令: PASS *******
响应: 500 OOPS: cannot change directory:/home/dyz
起初以为是密码错误和目录无权限,重新修改密码并给予权限后,依然提示错误
检查iptables,已经关闭
ps:若没有关闭,请关闭或者放通tcp21号端口的数据
service iptables stop
检查selinux是否开启,显示为开启状态
getenforce 查看命令
若显示为enforcing,则是开启状态
若显示为Permissive,则是关闭状态
关闭selinux有两种访问
a.永久关闭
编辑/etc/selinux/config
SELINUX=enforcing改为SELINUX=disable 将其改为disable状态
ps:该方法需重启机器
b.临时关闭
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
ps:该方法无需重启机器
然后访问,访问成功!
三、 user_lis与ftpuser文件
user_list文件取决于配置文件:
userlist_enable=YES(默认) 是否启用该文件的功能,若为NO时,userlist_deny无效
userlist_deny=YES(默认) 为YES时,该文件的用户不能访问ftp,如果是交互式的话甚至不提示输入密码,为NO时,只允许该文件的用户访问
ps:userlist_deny=YES 配置文件中没有,需添加,但功能默认是YES
只有当userlist_enable是开启的,userlist_deny才生效
ftpuser文件则是总是有效的,与配置文件无关,是一个黑名单性质的文件
ps:这两个文件有时需搭配使用,比如想使用root用户,则可以先配置:userlist_enable=YES
userlist_deny=NO
再编辑ftpuser,去掉文件root用户
四、 相关命令与文件
vsftpd配置文件:/etc/vsftpd/vsftpd.conf
匿名用户目录-:var/ftp/pub
日志文件:var/log/xferlog
服务的启动、停止,重启:/etc/init.d/vsftpd{start|stop|restart|try-restart|force-reload|status}
或
Service vsftpd {start|stop|restart|try-restart|force-reload|status}