vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特色是小巧轻快,安全易用,下面直接上干货。html
1、安装vsftpweb
以管理员的身份使用yum命令安装vsftp:shell
[root@localhost ~]#yum install vsftpd安全
根据系统yum的不一样,可能没法找到软件包源,能够按照这里的方法解决服务器
2、设置vsftp开机自动启动tcp
一、查看开机自动启动服务项目测试
[root@localhost ~]# chkconfig --listthis
二、设置vsftpd服务开机自动启动spa
[root@localhost ~]# chkconfig --level 35 vsftpd on.net
3、配置环境
一、添加vsftp帐号,指定帐号权限
■ 添加ftp帐号www,指定/home/www为www的宿主目录,该帐户号默认不能登录系统。
[root@localhost ~]# useradd -s /bin/nologin -d /home/www www #nologin的位置一般在/usr/sbin/nologin或/sbin/nologin位置,若是指定错误则没法登录。
■ 修改帐号密码。
[root@localhost ~]# passwd www
■ 修改指定目录权限。
[root@localhost ~]# chown -R www /home/www #-R参数:递归设置/home/www目录及期子目录的全部者为用户www。
二、配置vsftp
编辑vsftp的配置文件/etc/vsftpd/vsftpd.conf,修改配置文件相关配置项,以下:
anonymous_enable=NO #不容许匿名登录
ascii_upload_enable=YES #上传时容许ASCII模式
ascii_download_enable=YES #下载时容许ASCII模式
local_enable=YES #容许本地用户登陆ftp服务器,默认是容许,不包含id为500如下用户陆
write_enable=YES #容许用户具备在ftp服务器文件中具备写的权限
chroot_local_user=YES ##是否将全部用户锁定在主目录,YES为启用 NO禁用
chroot_list_enable=YES #是否启动锁定用户的名单,YES为启用 NO禁用
chroot_list_file=/etc/vsftpd/chroot_list #当chroot_list_enable=YES时,该项有效,禁用的列表名单格式为一行一个用户, 若是名单里面有一个test01的用户, 则test01用户不会锁定在主目录,用户将能够自由切换目录。
举例:
状况一:
如今有 test1 test2 test3 这三个ftp的用户,想让1跟2用户锁定主目录不容许切换到其余目录, 可是容许3用户自由切换那么/etc/vsftpd/chroot_list列表名单以下:
test3
也就说chroot_local_user=YES,而且chroot_list_enable=YES的时候,/etc/vsftpd/chroot_list名单里面添加的是排除锁定主目录的用户名单。
状况二:
若是chroot_local_user=NO而且chroot_list_enable=YES的时候,那么/etc/vsftpd/chroot_list列表名单以下:
test1
test2
状况三:
若是chroot_local_user=YES 而且 chroot_list_enable=NO 的时候那列表名单也就不生效了,所以知足上面的条件时,全部的FTP用户将所有锁定在主目录。
ls_recurse_enable=YES #启用递归
listen=YES #使用IPV4时设置为YES
listen_ipv6=NO #使用IPV6时设置为YES
local_root=/data/ftproot #指定根目录,若是未指定,用户的宿主目录将做为FTP主目录
use_localtime=YES # use localtime
seccomp_sandbox=NO #turn off for seccomp filter ( if you cannot login, add this line )
三、修改shells配置
编辑shell的配置文件/etc/shells,若是文件中没有/sbin/nologin或者usr/sbin/nologin,在文件中追加该上便可。
四、配置防火墙
编辑/etc/sysconfig/iptables文件,在REJECT行以前添加以下命令:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #从上一行中进行复制粘贴后修改端口号为21便可
添加后保存,而后重启防火墙服务。
[root@localhost ~]# service iptables restart #其它命令:service iptables stop中止防止墙服务
6、启动vsftp并测试登录
启动vsftp服务
[root@localhost ~]# service vsftpd start #其它命令:service vsftpd restart重启FTP服务、service vsftpd stop中止FTP服务
服务成功启动后,用FTP客户端登录便可(推荐使用Xshell ),ftpadmin管理目录是/www/web。
7、错误处理
一、500 OOPS: cannot change directory:/home/www
该错误缘由是在CentOS系统下默认安装了SELinux,没有开启FTP支持,因此访问时都被阻止了,须要手动开启。
[root@localhost ~]# getsebool -a|grep ftp #查看全部ftp设置
[root@localhost ~]# setsebool ftp_home_dir 1 #setsebool -P ftp_home_dir 1 使用P参数实现重启后ftp_home_dir自动为1