vsftp使用方法与问题解决

时间:2022-09-20 17:39:09

安装环境

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}