1. 安装vsftpd服务(我们这采用yum源安装)

    yum install vsftpd

  2. 创建vftpd用户和密码

    命令如下: 

    [root@srsman]# adduser -d /opt/zzx -s /sbin/nologin admin 

    [root@srsman]# passwd admin 

    Changing password for user beinan. 

    New password: admin

    Retype new password: admin

    passwd: all authentication tokens updated successfully.

    这样就为系统增加了一个名为admin ,目录指向为/opt/zzx的ftp用户

  3. 查看/etc/vsftpd/vsftpd.conf 中配置文件解释

     #Write_enable= YES :上传文件权限

     #anon_upload_enable= YES :作用是匿名用户可以上传功能

     #anon_mkdir_write_enable= YES :作用对于创建目录权限(可创建目录)

     #anon_other_write_enable=YES :其他权限(创建,删除,修改)

    #dirmessage_enable=YES :当用户进某个目录是提示显示提示信息

     #xferlog_enable=YES   :是否打开传输日志

     #xferlog_file=/var/log/xferlog :开启日志打印信息

     #xferlog_std_format=YES :显示输出日志的格式

     ##chown_uploads=YES chown_uname=whoever :修改上传文件的数组改为其他用户

     ##idle_Session_timeout=600; :定义会话超时时间

     ##data_countction_timeout=120; 数据超时的时间

    ##ascii_upload_enable=YES; 启用文本模式上传

    ##ascii_download_enable=yes; 同上

    Chroot_list_enable=YES ;  chroot_list_file=/etc/vsftpd/chroot_list;  同时启用锁定家目录的权限(chroot_list文件不存在,我们这要手动创建)

    添加chroot_local_user=YES ;解决所有用户的锁定家目录的问题

    #listen=YES; 是否开启独立的守候进程

    #pam_service_name=vsftpd ; etc/定义的名字 ----/ pam.d/vsftpd文件有关

    #userlist_enable=YES; userlist文件中的用户是不能登陆的------userlist文件相关配合使用

   #userlist_deny=YES; yes是拒绝 no 不拒绝------userlist文件相关配合使用


 

修改vsftpd.conf文件: 

user_config_dir=/etc/vsftpd/user_config_dir 

并在这个文件夹下面添加用户名的文件 

anon_world_readable_only=NO 

anon_upload_enable=YES 

anon_mkdir_write_enable=YES 

anon_other_write_enable=YES 

chroot_local_user=YES  //开启用户锁定

修改 tcp_wrappers值为NO

     tcp_wrappers=NO


4.修改文件夹的读写权限: 

cd /opt

chown admin zzx

chmod 777 zzx


5.修改root登陆

允许root登陆

vsftpd目录下ftpusers和user_list文件里面的root前加#号


锁定用户目录

vsftpd.conf文件中chroot_local_user=YES前面的#号去掉

重启服务即可


6. 错误信息点

ftp服务器连接失败,错误提示: 

500 OOPS: cannot change directory:/zzx/******* 

500 OOPS: child died

当你看到以上提示时,试着在输入以下命令解决 

setsebool -P ftpd_disable_trans 1 

service vsftpd restart

 

补充说明:

遇到  550 Create directory operation failed. 550创建目录操作失败  错误,解决办法:

1.禁止SELinux

# vi /etc/selinux/config

修改为:SELINUX=disabled




7.开启ftp的被动端口

修改/etc/vsFTPd/vsFTPd.conf

新增底下四行

listen_port=21

pasv_enable=YES

pasv_min_port=9981

pasv_max_port=9986


8.iptables下开启vsftp的被动模块

开启被动模式FTP支持:

在/etc/sysconfig/iptables-config里面添加ip_nat_ftp、ip_conntrack_ftp模块,如下:

vim /etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_nat_ftp"

IPTABLES_MODULES="ip_conntrack_ftp"

然后重启iptables或者执行如下命令:

lsmod | grep ftp (查看是否加载ftp模块)
modprobe ip_nat_ftp(加载ftp模块)
lsmod | grep ftp (查看模块是否被加载)

之后只需要添加规则
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT