(1) yum install vsftpd ftp
(2)useradd vsftpd -s /sbin/nologin 增加一个系统非登录用户,做虚拟用户的登录映射
(3)vim /etc/vsftpd/vsftp.conf
anonymous_enable=NO 不允许匿名访问
guest_enable=YES
guest_username=vsftpd 指定虚拟用户的宿主用户
xferlog_file=/var/log/vsftpd.log 指定vsftpd日志文件路径
user_config_dir=/etc/vsftpd/vconf 设置虚拟用户个人配置文件的路径
(4)touch /var/log/vsftpd.log && chown vsftpd.vsftpd /var/log/vsftpd.log
建立ftp日志文件,并修改拥有者
(5)vim /etc/vsftpd/virtusers 创建虚拟用户,一行用户,一行密码
(6)db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db 将虚拟用户创建成数据库
(7)mkdir /etc/vsftpd/vconf 放置虚拟用户个人的配置的目录
(8)vim /etc/vsftpd/vconf/tom 虚拟用户个人的配置文件
local_root=/opt/vsftpd/tom 指定虚拟用户的登录根目录
(9)mkdir /opt/vsftpd/tom -p && chown vsftpd.vsftpd /opt/vsftp -R
创建虚拟用户的根目录所在目录,如果不创建,默认登录的根目录是/home/vsftpd
(10)vim /etc/pam.d/vsftpd 修改pam,登录ftp时去数据库查找用户
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
(11)service vsftpd start 或 vsftpd /etc/vsftpd/vsftpd.conf &
(12) 注意防火墙要允许20、21端口
(13)ftp
ftp> open localhost
//登录时发生500 OOPS:vsftpd:refusing to run with writable root inside chroot() 错误,查看登录用户的根目录权限,不能再有写权限了。chmod a-w /opt/vsftpd/001
//226 Transfer done (but failed to open directory). Selinux没有开启ftp的支持,关掉selinux或者开启selinux对ftp的支持。
Vi /etc/selinux/config --->disabled
setsebool -a | grep ftp 查看ftpd_disable_trans–> off 或者ftp_home_dir–>off
setsebool ftpd_disable_trans 1或者setsebool ftp_home_dir 1
setsebool -a | grep ftp 查看ftpd_disable_trans–> on 或者ftp_home_dir–>on
来源:https://www.cnblogs.com/Christine-ting/p/10482142.html