1. yum install vsftpd  db4-utils

  2. 因为要使用虚拟用户登录.

    修改如下文件 a:/etc/pam.d/vsftpd ;添加两行

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

系统64位  很多网上资料 写的是/lib/security/pam_userdb.so 这里要改一下

其它注释掉。

3.  配置文件 vsftpd.conf

    

listen=YES

local_enable=YES      #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

userlist_enable=YES

tcp_wrappers=YES

anonymous_enable=NO

guest_enable=YES

guest_username=ftpadmin   #虚拟目录对应的系统账号

pam_service_name=vsftpd

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf #配置虚拟用户的单独配置路径,如家目录等

anon_umask=022

4. 添加用户ftpadmin  

useradd ftpadmin -d /data/ftp -s /sbin/nologin 

5. 添加用户名密码 到文件vftpuser.txt 

格式为:

用户名

密码

6. db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db 密码生成到数据文件

7./etc/rc.d/init.d/vsftpd restart 重启即可

/etc/vsftpd/vsftpd_user_conf/用户名

write_enable=YES

anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/ftp/database

配置文件后不能有空格 否则会报错,比如上面加入注释的地方。

要允许local_enable=YES 否则530登录报错  还有超时错误还不清楚原因

centos 7 报错无法登陆可以命令行下验证:(500 OOPS: vsftpd: refusing to run with writable root inside chroot ()  )   需要在vsftpd.conf 中添加   allow_writeable_chroot=YES

参考:

今天在 6 上面配置时 发现几个问题

6 安装的是 2.2.2 版本 7的是3.0.2版本

allow_writeable_chroot=YES  在6里不支持

2:把端口号改为 918 报错 无法列举目录。 改回21就正常 ???