在RedHat 7上安装配置FTP服务和RedHat6基本一致,本文是以系统盘自带的vsftpd配置FTP服务。

本文原始出处:江健龙的技术博客 http://jiangjianlong.blog.51cto.com/3735273/1791464


首先使用yum安装vsftpd:yum install vsftpd

RedHat 7配置FTP服务_ftp


创建两个目录,/data/ftpshare配置需登录服务且可读写,/data/ftppublic配置匿名登录但只读

RedHat 7配置FTP服务_redhat7_02


编辑配置文件:vi /etc/vsftpd/vsftpd.conf,在末尾添加以下内容,指定默认的根目录以及匿名登录目录:

RedHat 7配置FTP服务_ftp_03

编辑配置文件:vi /etc/vsftpd/user_listvi /etc/vsftpd/ftpusers,注释掉root,这样root用户才能登录ftp

RedHat 7配置FTP服务_redhat7_04

RedHat 7配置FTP服务_ftp_05


启动服务并设置服务开机运行

RedHat 7配置FTP服务_ftp_06


root登录FTP并创建文件夹,测试可读写

RedHat 7配置FTP服务_ftp_07


创建ftp用户ftpuser01,-s /sbin/nologin参数使该用户无法登录服务器,只能登录FTP

RedHat 7配置FTP服务_ftp_08


使用ftpuser01登录

RedHat 7配置FTP服务_redhat7_09

ftpuser01登录后只能在自己的家目录中有读写权限

RedHat 7配置FTP服务_ftp_10

但无法在其他文件夹写入,因为对其他文件夹没写入权限

RedHat 7配置FTP服务_ftp_11

但是如果用cmd登录,却可以切换到其他目录,这是一个安全隐患

RedHat 7配置FTP服务_ftp_12

解决办法:在服务器中修改vsftpd的配置文件,将chroot_local_user=YES的注释符去掉

RedHat 7配置FTP服务_redhat7_13

然后重启一下服务,这样FTP用户登录后就无法切换到上级目录了

RedHat 7配置FTP服务_redhat7_14

但这样会带来一个新的问题,就是root用户无法登录了,解决办法也很简单,就是在vsftpd配置文件中增加一行:allow_writeable_chroot=YES

RedHat 7配置FTP服务_ftp_15

然后重启一下服务,root用户就可以登录ftp了,而已包括root再内的所有用户登录到ftp后都无法切换到上级目录


测试匿名登录,测试可读可下载

RedHat 7配置FTP服务_ftp_16

但不可上传,因为vsftpd的配置文件中默认没有允许匿名上传

RedHat 7配置FTP服务_ftp_17

RedHat 7配置FTP服务_ftp_18