(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
来源: http://www.bubuko.com/infodetail-2977633.html