安装vsftpd
配置信息(本地账户登录模式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [root@web1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=NO listen_port=2222 listen_ipv6=YES
|
被动模式
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=50000
1 2 3 4 5
| pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES allow_writeable_chroot=YES
|
新增用户
1 2 3
| [root@web1 vsftpd]# useradd -d /data/ftp -g ftp -s /sbin/nologin ftpuser [root@web1 data]# chown -R ftpuser:ftp /data/ftp [root@web1 data]# passwd ftpuser
|
新增文件权限
如果希望某个用户可以访问根目录,把用户名加入
1
| [root@web1 ~]# echo "ftpuser" >> /etc/vsftpd/chroot_list
|
启动vsftp
1 2
| systemctl start vsftpd systemctl enable vsftpd
|
备注
windows 如IE访问ftp会提示200 Switching to ASCII mode,解决方案是打开ie浏览器-工具-internet选项-高级-不勾选使用被动FTP即可。
错误
问题:
常规部署完成后,帐号密码正确,一直提示无法登录
1 2 3 4
| 331 Please specify the password. Password: 530 Login incorrect. Login failed.
|
解决方案:
查看 /etc/vsftpd/vsftpd.conf 查到 pam_service_name=vsftpd ,可知认证pam 文件位于 /etc/pam.d/vsftpd
查看 /etc/pam.d/vsftpd 看到一行 auth required pam_shells.so ,因为创建ftp账户时候,禁止了ssh登陆 所以此处应该改为 pam_nologin.so
重启 systemctl restart vsftpd.service ,可以正常登陆