1、安装vsftpd

yum install -y ftp vsftpd

2、配置/etc/vsftpd/vsftpd.conf

修改项如下:

#不允许匿名访问
anonymous_enable=NO #限制用户通过ftp只能访问自己的主目录
chroot_local_user=YES
#是否开启限制名单
chroot_list_enable=YES
#限制名单的路径
chroot_list_file=/etc/vsftpd/chroot_list

3、编辑/etc/vsftpd/chroot_list

内容如下

ftpuser

这里是先将ftpuser这个用户限制在自己的主目录中,ftpuser这个用户需要我们手动创建

4、创建用户

#创建用户ftpuser,设置其主目录为/home/ftpuser
useradd -d /home/ftpuser ftpuser #限定用户ftpuser不能telnet
usermod -s /sbin/nologin ftpuser #如果想将用户恢复正常命令如下
usermod -s /sbin/bash ftpuser #更改用户ftpuser的主目录为/usr/share/nginx/html
usermod -d /usr/share/nginx/html ftpuser

#设置用户密码
passwd ftpuser
#如果将用户的主目录设置到某个已有的目录下,一定要保证该目录可被该用户访问
#可以参考chmod命令相关内容chmod 666 [目录路径]

5、调整selinux

selinux的存在可能会导致用户打开文件夹看到的文件列表为空或者无法进入文件夹,selinux操作方式如下:

setsebool -P ftpd_disable_trans 1

或者

setsebool -P ftp_home_dir on

然后重启FTP服务

以下说明摘自 传送门

# setsebool -P allow_ftpd_anon_write=   #允许ftpd匿名用户可写
# setsebool -P ftp_home_dir #允许用户访问自己的根目录
# setsebool -P ftpd_is_daemon #允许daemon运行ftpd
# setsebool -P ftpd_disable_trans #关闭SELINUX对ftpd的保护
# setsebool -P allow_httpd_anon_write= #允许httpd匿名用户可写
# setsebool -P allow_httpd_sys__anon_write= #同上
# setsebool -P httpd_enable_cgi #httpd被设置允许cgi被执行
# setsebool -P httpd_enable_homedirs #允许访问用户的根目录
# setsebool -P httpd_tty_comm #允许httpd控制终端
# setsebool -P httpd_unified #httpd之间相互独立
# setsebool -P httpd_builtin_ing #同httpd环境一样运行
# setsebool -P httpd_can_network_connect #httpd可以连接到网络
# setsebool -P httpd_suexec_disable_trans #禁用suexec过度
# setsebool -P httpd_disable_trans #允许daemon用户启动httpd
# setsebool -P named_write_master_zones #允许修改dns的主zone文件
# setsebool -P named_disable_trans #允许daemon启动named
# setsebool -P nfs_export_all_ro #nfs只读
# setsebool -P nfs_export_all_rw #nfs可读写
# setsebool -P use_nfs_home_dirs #允许本机访问远程nfs的根目录
# setsebool -P allow_smbd_anon_write= #samba允许匿名用户可写
# setsebool -P samba_enable_home_dirs #允许根目录访问
# setsebool -P use_samba_home_dirs #允许本机访问远程samba根目录
# setsebool -P smbd_disable_trans #允许daemon启动samba
# setsebool -P allow_rsync_anon_write= #允许匿名用户可写
# setsebool -P rsync_disable_trans #允许daemon启动rsync

也可以永久关闭selinux:

vim /etc/selinux/config

改SELINUX=disabled

# 保存退出,重启服务器

reboot

6、防火墙操作

可以直接关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

如果要保持防火墙常开请注意以下端口的打开

20、21端口,此外还要

1:修改配置文件

vi /etc/vsftpd/vsftpd.conf

2:在末尾添加

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

然后重启vsftpd服务

上文配置的 30000到31000是Vsftpd被动模式需要的端口,也需要在防火墙中打开

部分其它配置说明:

https://blog.csdn.net/bluishglc/article/details/42398811

https://blog.csdn.net/bluishglc/article/details/42273197

centos7.4 开启ftp服务的更多相关文章

  1. CentOS7上安装FTP服务

    ---------------------------------------------------------------------------------------------------- ...

  2. centos7中搭建ftp服务

    博客搬家: centos7中搭建ftp服务 最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程.过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的 ...

  3. ubuntu 开启 ftp 服务 | mingming-killer

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  4. AIX系统开启ftp服务

    http://blog.itpub.net/28227905/viewspace-1060183/ 当然,首先网络工程师给你放开策略,开通ftp端口之后,你才能做下一步. [@more@] AIX开启 ...

  5. 如何在linux下开启FTP服务

    如何在linux下开启FTP服务 1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:   #which vsftpd   如果看到有vsftpd的目录说明服务器已经安装了ftp软件 2. ...

  6. 检测FTP服务并开启FTP服务

    1. 检测FTP服务是否开启 1.1. 通过查询提供FTP服务的进程是否存在,并未找到任何包含ftp关键字的进程信息,可判断服务未开启. root@lb- ~ # ps -ef | grep ftp ...

  7. liunx和aix 系统开启ftp服务

    AIX开启ftp服务: 1.ftp服务的守护进程是否存在 #lssrc -s inetd 2.ftp服务的开启与关闭 #startsrc -t ftp #stopsrc -t ftp 3.ftp服务是 ...

  8. Windows 下开启FTP服务并创建FTP用户

    Windows 下开启FTP服务,并创建用户 此教程教你怎么开启 Windows 的 FTP 服务,并创建用于登入 FTP 的用户.教程用到的操作系统是 Windows 7. 一.创建用于登入 FTP ...

  9. centos7 开启ftp服务

    1.关闭默认防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewa ...

随机推荐

  1. C#4.0特性

    C# 4.0的主要主题是动态编程.对象的意义变得越来越“动态”,它们的结构和行为无法通过静态类型来捕获,或者至少编译器在编译程序时无法得知对象的结构和行为. a. 来自动态编程语言——如Python或 ...

  2. PowerDesigner使用积累

    PowerDesigner想必没人不知道吧?著名的CASE工具,目前最新版本为15.2,用于软件建模,可以从需求直到物理模型,支持UML2.0语法,可用于UML图绘制.最大特色是能够使设计到实现无缝衔 ...

  3. java12小时制的时间转换为24小时制

    Java中将12小时制的时间转换为24小时制的方式如下: import java.text.SimpleDateFormat; import java.util.Date; public class ...

  4. 066 linux下时间的修改

    1.关于时间的修改,在linux还是很重要的,在这里只是介绍一个简单的常用的命令,并且时间不会写入到系统. 2.命令 3.如果想把时间写进系统 修改完成之后,输入clock -w 时间将会被写进CMO ...

  5. EXIST子查询

    已知关系模式:S(Sno,Sname,Sclass),C(Cno,Cname,Cteacher),SC(Sno,Cno,Scgrade).其中,S为学生关系:Sno学号, Sname姓名,Sclass ...

  6. JavaWeb 之 清理错误的无奈之举

    1. Project -> Clean 2. 清空浏览器缓存 (得先按了F2,出了调试窗口,才可以右键它) 3. 右键项目 -> Maven -> Update -> Forc ...

  7. AngularJS获取项目中定义的json文件

    项目结构: 文件夹js位于根路径下 $http.get('js/app/contact/contacts.json').then(function (res) { /*下面就是获取到的数据*/ $sc ...

  8. BeagleBone Black的内核移植-从零开始制作镜像

    很多年前做的针对BeagleBone Black开发板的镜像制作,因为当时涉及到非标准化的,所以把基本的kernel.uboot和跟文件系统rootfs都做了一遍,文中只做移植,不作定制化的修改. 如 ...

  9. MySQL数据库-----基本命令操作

    小编之前一直想要了解一下,如何搭建数据库,这里分享一下在此之前的一些准备工作,首先小编是先了解数据库(mysql),以下是小编的一些认识: 一.mysql常用命令1.mysql登录和退出 登录:mys ...

  10. 手动更新nexus的索引

    安装nexus 1.下载 源码包 nexus-2.13.0-01-bundle.tar.gz 下载地址 http://www.sonatype.org/nexus/ 2.解压源码包 3.启动并访问 . ...