捣鼓了一天的ftp,满百度查也没查到能完整说清楚和解决中间可能出现的问题。痛定思痛,自己写一个吧。
环境:CentOS Linux release 7.7.1908 (Core)
一、安装FTP#先检查系统中是否有ftp rpm -q vsftpd #要删除ftp rpm –e vsftpd #安装ftp yum -y install vsftpd #设置为开机启动 systemctl enable vsftpd.service二、防火墙相关
#百度上看说ftp分主动被动模式,反正只开放21端口肯定不行,至少是21和22两个端口,如果嫌麻烦可以关闭防火墙 #直接关闭防火墙 systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #-----------------或者开启21和22端口----------------- firewall-cmd --zone=public --add-port=21/tcp --permanent firewall-cmd --zone=public --add-port=22/tcp --permanent #重启防火墙 firewall-cmd --reload #防火墙开启ftp及http服务 #查看防火墙支持那些协议通过 firewall-cmd --list-services #开启http协议 firewall-cmd --permanent --add-service=http #开启ftp协议 firewall-cmd --permanent --add-service=ftp三、配置文件相关
真的很累,百度上奇奇怪怪一大堆,心累
3.1 /etc/vsftpd/vsftpd.conf配置文件#如果你想匿名登录,不需要配置用户名及密码的话,到这里就完成了,直接启动ftp(命令在五中),使用Anonymous登录就行,不需要密码 #如果需要配置一个用户登录使用的话,请往下看 #1、关闭匿名登录 vim /etc/vsftpd/vsftpd.conf 将anonymous_enable设置为NO anonymous_enable=NO #2、设置chroot_local_user为Yes chroot_local_user=YES #3、开启chroot_list_enable chroot_list_enable=YES #4、设置chroot_list配置文件的路径 chroot_list_file=/etc/vsftpd/chroot_list #5、如果ftp的版本大于2.3.5的话,在配置文件末尾添加 allow_writeable_chroot=YES #6、我也没看明白是什么的配置,先配置上,直接控制台输入下面两句话就可以了 setsebool -P allow_ftpd_full_access on setsebool -P tftp_home_dir on3.1 /etc/pam.d/vsftpd配置文件
#此处不配置会导致无法登录、登录后无法获取文件列表等 vim /etc/pam.d/vsftpd #将auth required pam_shells.so注释掉 #然后将下面这行插入到上面这行配置的下方 auth required pam_nologin.so四、增加可以访问和连接FTP的用户
#1、新增一个ftpuser01的用户,且不能登录系统 useradd ftpuser01 -s /sbin/nologin #2、设置密码 设置成123456就可以了,输入两遍 passwd ftpuser01 #3、将新增的用户添加到chroot_list配置文件中 vim /etc/vsftpd/chroot_list #4、添加后保存即可 wq!五、重点来了。。。。。。
注:后面我重新还原虚拟机又配置了几次,这里好像可以忽略。。。。。
如果出现账号登录不上的问题可以尝试使用
cd到home路径下,查看用户名命名的文件夹的权限
必须保证这个文件夹没有写的权限
chmod 555 ftpuser01六、现在可以启动FTP了
#启动 systemctl start vsftpd.service #停止 systemctl stop vsftpd.service #重启 systemctl restart vsftpd.service大功告成



