1、检测是否已安装FTP
#rpm -qa | grep vsftpd
2.安装vsftpd
#yum install vsftpd
3、设置开机自启动
#chkconfig vsftpd on
4、配置vsftpd
#vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //是否允许匿名用户登陆FTP。
chroot_local_user=YES //限制访问目录范围,只能访问主目录及下属的文件.设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
chroot_list_enable=YES //使用户不能离开主目录(和/etc/vsftpd/chroot_list配合使用)
dirmessage_enable=YES //切换目录时,显示目录下.message文件中的内容 默认是开启的
local_umask=022 //没有什么特殊情况不用修改。FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022.
xferlog_file=/var/log/vsftpd.log //设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
xferlog_enable=YES //启用上传和下载的日志功能,默认开启。建议开启此功能,它可以对用户的操作进行日志记录,当出现问题的时候可以通过日志排查问题。
ftpd_banner=XXXX //FTP的欢迎信息。
data_connection_timeout=120 //数据连接超时时间。
ascii_upload_enable=YES //允许使用ASCII模式上传
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
5、重启vsftpd
#service vsftpd restart
6、创建FTP用户
修改完vsftpd的配置文件之后我们还是不能使用vsftpd,因为我们还没有设置ftp的用户。
添加一个名为ftpuser的用户,用户文件夹位置为:/home/wwwroot/folder,且禁止此用户登陆服务器:
#mkdir -r /home/wwwroot/folder
#chmod 777 /home/wwwroot/folder // 服务文件夹读取写入的权限
#useradd -d /home/wwwroot/folder -g ftp -s /sbin/nologin ftpuser
// useradd: 添加用户的命令
// /home/wwwroot/folder : FTP的目录,上传下载文件存储目录
// -g ftp : 加入ftp用户组
// sbin/nologin : 禁止用户登录系统,只能使用FTP服务
// ftpuser : 创建的用户名
#passwd ftpuser //设置ftpuser密码
7、把用户 ftpuser 添加到chroot_list中
#vi /etc/vsftpd/chroot_list //把 ftpuser 加入该文件
8、防火墙开放端口
#vi /etc/sysconfig/iptables:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -jACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --sport 20 -jACCEPT
-I INPUT -p tcp --dport 10000:10010 -j ACCEPT
#service iptables restart
#service vsftpd restart
测试虚拟用户
在浏览器的地址栏输入 "ftp://你的ip",在弹出的对话框中输入账号、密码,即可连接成功。
// 报错 550 Create directory operation failed
解决方案一:
查看 SELinux 的状态,确切地说,只是查看了ftp的状态:
#sestatus -b | grep ftp
在出现的结果中可以看到
ftp_home_dir off
tftpd_disable_trans off
我们现在只要把其中之一设置为on就可以啦。
#setsebool -P ftpd_disable_trans on //或下面一行命令
#setsebool -P ftp_home_dir on
3、重启vsftpd:
#service vsftpd restart
解决方案二:
SELinux(Security-Enhanced Linux----是美国国家安全局对于强制访问控制的实现, 是Linux 上最杰出的新安全子系统.)安装机制搞的鬼.只要disable SELinux就可以了.
关闭SELinux方法
# vim /etc/selinux/config
//SELINUX=XXX -->XXX 代表级别改为 SELINUX=disabled
重启完就可以了。
//IE浏览器访问不了
打开IE ,“工具”,点击“Internet选项”,再选择“高级”选项卡,往下拉,可以看到“使用ftp被动模式” 把前面的勾去掉即可。使用ftp客户端工具也一样,应去掉被动模式、pasv前面的勾。