操作系统环境:
CentOS Linux release 7.4.1708 (Core)
使用yum安装ftp服务:
yum install -y vsftpd
添加系统用户作为登录ftp服务器并修改ftp配置文件:
[[email protected] ~]# useradd ftp1 -s /sbin/nologin -d /ftp_data && echo "123456"|passwd ftp1 --stdin #添加用户并设置访问的ftp目录[[email protected] ~]# chown ftp1:ftp1 /ftp_data/[[email protected] vsftpd]# mv vsftpd.conf vsftpd.conf.bak #备份配置文件[[email protected] vsftpd]# cat vsftpd.conf.bak |grep -v ‘^#‘ > vsftpd.conf[[email protected] vsftpd]# vim vsftpd.conf #修改禁止虚拟用户登录ftp服务器[[email protected] vsftpd]# systemctl restart vsftpd.service #重启vsftpd[[email protected] vsftpd]# systemctl enable vsftpd.service #开启自动启动vsftpf
关于配置文件/etc/vsftpd/vsftpd.conf参数说明:
anonymous_enable=NO # 不允许匿名访问,禁用匿名登录 chroot_local_user=YES # 启用限定用户在其主目录下 use_localtime=YES # 使用本地时(自行添加) chroot_list_enable=YES #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用) local_enable=YES # 允许使用本地帐户进行FTP用户登录验证 allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置,解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot() xferlog_enable=YES # 启用上传和下载的日志功能,默认开启。 local_umask=022 # 设置本地用户默认文件掩码022 # FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022
关闭防火墙和selinux:
[[email protected] vsftpd]# setenforce 0 #临时关闭selinux
[[email protected] vsftpd]# systemctl stop firewalld.service
[[email protected] vsftpd]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config #永久关闭
如果不愿意关闭防火墙,需要防火墙添加FTP服务:
[[email protected] vsftpd]# systemctl start firewalld.service [[email protected] vsftpd]# firewall-cmd --permanent --zone=public --add-service=ftp success [[email protected] vsftpd]# firewall-cmd --reload success
客户端测试可以正常连接服务器并成功上传文件:
原文地址:https://www.cnblogs.com/wenwei-blog/p/8890436.html
时间: 2024-11-06 03:42:20