centos7 上 使用vsftp 搭建ftp环境

搭建了一个vsftp的环境,花了小半天才搞好,主要是在文件权限部分折腾了挺久,我的系统环境是CentOS Linux release 7.0.1406 ,vsftpd-3.0.2-21.el7.x86_64

首先是虚拟用户的概念,vsftp有三种登录方式,匿名,本地用户,虚拟用户。

匿名使用ftp或者anonymous登录,无密码

本地用户使用系统用户登录

虚拟用户是使用在vsftp内创建的一系列账户进行登录,vsftp通过db以及用户配置文件来对用户进行管理,通常配置比较灵活,安全性也较高

搭建过程:

一、添加一个系统用户

useradd –d /home/ftp –s /sbin/nologin vftpuser

ftp目录,可以使用该用户的home目录,也可以指定其他目录作为ftp目录,需要确保有相应的权限(读、写、删除更名等)

二、vsftp中添加虚拟用户

1、使用db_load生成用户口令认证文件

先生成一个txt文件,一行用户名,一行密码,例如:

然后通过db_load生成口令认证文件,放在/etc/vsftpd/目录下

db_load –T –t hash –f ./vsftpuser.txt /etc/vsftpd/vsftpuser.db

可以通过db_dump来查看db中的内容,命令格式为:

db_dump -d a ./vsftpuser.db

2、修改PAM认证文件

修改/etc/pam.d/vsftpd文件
注掉所有行后添加以下两行:
auth  required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser

三、修改vsftpd.conf配置文件

 1 anonymous_enable=NO      
 2 local_enable=YES
 3 write_enable=YES
 4 local_umask=022
 5 anon_upload_enable=NO
 6 dirmessage_enable=YES
 7 xferlog_enable=YES
 8 connect_from_port_20=YES
 9 chroot_local_user=NO
10 chroot_list_enable=YES
11 chroot_list_file=/etc/vsftpd/chroot_list
12 listen=YES              #不打开启动失败,同时ipv6设置为NO
13 userlist_enable=YES
14 tcp_wrappers=YES
15 guest_enable=YES           #打开虚拟用户设置 
16 guest_username=vsftpuser      #映射为第一步中添加的系统用户
17 pam_service_name=vsftpd        #PAM文件
18 vsftpd_log_file=/var/log/vsftpd.log  #指定log文件
19 user_config_dir=/etc/vsftpd/userconf  #虚拟用户的配置文件路径
20 allow_writeable_chroot=YES        #新版本安全选项
21 virtual_use_local_privs=NO        #为NO时,虚拟用户使用匿名用户权限,为YES虚拟用户使用系统用户权限,默认为NO,可以通过用户的配置文件再来为用户单独指定权限

主要是这些配置,如遇到问题,可以根据错误提示,反复尝试一下配置选项

四、虚拟用户配置文件

对应着vsftpd.conf中 user_config_dir=/etc/vsftpd/userconf的路径

可以为每一个虚拟用户创建单独的配置文件,该文件中的配置选项覆盖vsftpd.conf的选项。

通常匿名用户只具有浏览和下载的权限,通过用户配置文件可以为虚拟用户指定目录以及各种上传下载权限等等

例如用户名为mput的配置文件:

 1 local_root=/home/ftpfile/media_upload      #指定该用户ftp路径
 2 #
 3 anon_upload_enable=YES               #匿名用户的权限
 4 anon_world_readable_only=YES            
 5 anon_mkdir_write_enable=YES
 6 anon_other_write_enable=YES
 7 chown_username=vsftpuser              #上传时文件用户名
 8 ~
 9 ~
10
11 "./userconf/mput" 7L, 173C

配置好后,systemctl start vsftpd.service将服务起起来,通过客户端进行测试

遇到的一些问题:

1、vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

安全选项,设置一下 allow_writeable_chroot=YES试试

2、550 Permission denied.

检查下用户是否对该目录有写权限,以及在虚拟用户的配置项中,需要打开写的权限

3、500 OOPS: cannot change directory:/home/vsftp

安全选项,在setsebool中将ftpd_full_access 项打开

4、启动失败,提示warning: can’t get client address: Socket operation on non-socket

检查一下配置选项中的LISTEN是否打开,以及ipv6的配置

参考:

配置选项:http://yuanbin.blog.51cto.com/363003/108262/

时间: 2024-10-11 00:13:05

centos7 上 使用vsftp 搭建ftp环境的相关文章

服务器搭建2 VSFTP搭建FTP服务器

FTP服务器是平时应用最为广泛的服务之一.VSFTP是Very Secure FTP的缩写,意指非常安全的FTP服务.VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务. 首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:  1.如何添加FTP用户?  2.如何临时冻结某FTP用户?  3.FTP用户登入后的默认目录?是否可以改变?  4.如何锁定FTP用户可访问的目录范围?  5.FTP用户可以有哪些访问权限

exportfs命令,NFS客户端问题,FTP介绍,使用vsftp搭建ftp

笔记内容: 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp 笔记日期: 14.4 exportfs命令 这个exportfs命令会在安装nfs-util包时一起安装,当服务端需要停止NFS服务或者进行一些变动并重启时,其他挂载了共享目录的机器需要将这个挂载的目录卸载掉,不然的话服务进程就会出问题,单台机器我们可以使用unmnt命令去卸载,但是如果有几十台机器的话总不能一个个去unmnt吧,所以这个exportfs命

在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry

Bosh-lite简介 参考文献  http://tqcto.com/article/system/261.html bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证.Bosh-lite目前支持仅MAC OS X和Linux系统.Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台. 如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bo

在CENTOS上源码搭建LNMP环境

前言 1.操作前提: CentOS Linux release 7.5.1804: sudo用户(需要root权限): 2.需要安装的组件: nginx稳定版:nginx-1.14.0: MariaDB 10.3.10 Stable: PHP 7.2.11 Stable: 3.操作步骤: 添加环境依赖包: 安装libiconv,libmcrypt等: 安装nginx: 安装php: 安装mariadb: 下载安装包 wget http://nginx.org/download/nginx-1.1

linux用VSFTP搭建FTP服务器

一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件. sudo apt-get install vsftpd VSFTP的主配置文件是/etc/vsftpd.conf 安装完毕后或许会自动生成一个帐户”ftp”,/home下也会增加一个文件夹.如果没有生成这个用户的话可以手动来,生成了就不用了:代码:sudo useradd -m ftpsudo passwd ftp 有”ftp”帐户后还要更改

在CentOS7上使用FastDFS搭建文件服务器

1. 系统环境准备 首先需要自己在虚拟机上安装CentOS或者本机直接就是CentOS,安装及其它配置过程这里不再介绍,请参考笔者的CentOS7初始配置即可. 2. 软件环境准备 首先要安装GCC等编译环境及类库.使用如下命令 yum -y install gcc yum -y install gcc-c++ yum -y install stdlibc++-devel yum -y install perl 由于最新版的FastDFS依赖libfastcommon.通过V1.0.36.tar

Centos7.4源码搭建LAMP环境

CENTOS 7.4源码搭建LAMP 目录 一.源码安装apache2.4.33. 2 1.1.使用wget下载号所需的包 1.2.解压源码包并编译安装apache以及所需依赖包 1.3.启动apache服务 二.源码安装mysql 2.1.源码安装mysql 2.2.编译安装完成,对数据库进行初始化 2.3.启动数据库 2.4.创建数据库,给discuz用户授权 三.源码安装PHP并与apache进行整合 四.安装discuz论坛 一. 源码安装apache2.4.33 下载apache源码包

虚拟机搭建ftp环境

引用http://www.cnblogs.com/xiangxiaodong/archive/2013/12/23/3487028.html,学习. 本人是在Oracle VM VirtualBox下的CentOS6.2下进行操作的.操作流程如下: 1,以管理员(root)身份执行以下命令,安装FTP服务器端 yum install vsftpd 2设置开机启动vsftpd ftp服务 chkconfig vsftpd on 3.启动vsftpd服务 service vsftpd start 管

Windows 上通过本地搭建 Jekyll环境

一 准备Ruby环境 1 我们首先须要安装Ruby.从站点下载Ruby 上下载Ruby最新版和对应的DevKit. 我下载的是Ruby 2.1.4 (x64)和DevKit-mingw64-6 .注意:两者的安装文件夹,不得出现空格.比方Program Files这样的文件夹是不能有的.建议是装在盘的根文件夹 2. 配置安装环境.环境变量中新增环境变量名 RUBY_HOME ,变量值为 你的Ruby安装文件夹(我的是E:/ruby21-x64),然后在path中增加 "%RUBY_HOME%\b