0%

Centos 7 安装vsftpd

安装vsftpd

1
yum -y install 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 ,可以正常登陆