首先确认下是否安装了vsftp服务
# rpm -qa | grep vsftpd
如果安装了,请卸载,然后安装vsftpd,centos可以使用源安装,其他版本rpm安装
#yum -y install vsftpd
开启自动启动
# chkconfig vsftpd on
启动服务
#service vsftpd start
用文本编辑器打开配置文件
去掉chroot_list_enables和chroot_list_file的注释,开启用户名列表功能
useradd -d /usr/share/nginx -g ftp -s /sbin/nologin ftpuser这里的useradd -d /usr/share/nginx 表示增加用户并指向目录/usr/share/nginx,-s /sbin/nologin ftpuser禁止登录SSH权限 用户名是ftpuser。
这里提示useradd:user‘ftpuser’already exists是表示目录已存在无法新建,并不是无法创建用户
passwd ftpuser来修改用户密码,完成后重启vsftp服务就可以了。
至此ftp就搭建好了。但是登陆后发现了一个小问题,就是登陆后出现了500错误
500 OOPS: cannot change directory
这个错误是因为开启了selinux,这是一个非常底层的安全机制,对于我们一般来说没有什么鸟用,建议关闭。
那么我们使用一下命令来解决这个问题
setsebool -P ftpd_disable_trans 1
然后重启vsftpd
service vsftpd restart
注释:因为我这里是关闭了iptables,如果没有关闭的话,要在防火墙添加规则
-A INPUT -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT开启20、21端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 开启21主动端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT --开启被动端口
原文:http://phpblog.blog.51cto.com/7012109/1740816