1. 安装vsftpd及pam认证服务软件

yum  install vsftpd*  -y
yum install pam* libdb-utils libdb* --skip-broken -y
#设置开机启动
systemctl enable vsftpd.service #启动
systemctl start vsftpd.service

2. 配置/etc/vsftpd/vsftpd.conf 文件

listen=YES    #若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的
anonymous_enable=NO #静止匿名登录
local_enable=YES #设定本地用户可以访问
local_umask=022 #设定上传后文件的权限掩码
dirmessage_enable=YES #设定开启目录标语功能
use_localtime=YES
xferlog_enable=YES #设定开启日志记录功能
connect_from_port_20=YES #设定端口20进行数据连接 chroot_local_user=YES #禁止用户访问除主目录以外的目录
local_root=/data/vsftpd #访问的目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能 pam_service_name=vsftpd #设定,启用pam认证
guest_enable=YES #启动虚拟用户
guest_username=vsftpd #虚拟用户使用的系统用户名
user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户使用的配置文件目录
virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限
allow_writeable_chroot=YES #只能访问自身所属目录,否则会有 500 错误

3. 创建虚拟用户

创建vsftpd系统用户
#useradd vsftpd -d /data/vsftpd -s /sbin/nologin
#chown -R vsftpd:vsftpd /data/vsftpd 填写用户名good和密码123,其它依次填写
#vim /etc/vsftpd/ftpuser.txt
good 生成数据库文件
#db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/vsftpd_login.db
在/etc/pam.d/下创建配置vsftpd的数据库pam认证文件vsftpd,其它注释或删掉
#vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
配置good用户
#mkdir -p /etc/vsftpd/vsftpd_user_conf
#vim /etc/vsftpd/vsftpd_user_conf/good
local_root=/data/vsftpd/good
write_enable=YES
#mkdir -p /data/vsftpd/good

4. 配置selinux

查看 selinux配置
[root@localhost ~]# getsebool -a | grep ftpd
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
使能ftpd_full_access
#setsebool -P allow_ftpd_full_access 1
需要防火墙添加FTP服务。
#firewall-cmd --permanent --zone=public --add-service=ftp
#firewall-cmd --reload

5. 重启vsftpd并测试

[root@localhost ~]#systemcl restart vsftpd.service

[root@localhost ~]# ftp localhost
Trying ::...
ftp: connect to address ::1拒绝连接
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
(vsFTPd 3.0.)
Name (localhost:root): good
Please specify the password.
Password:
Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
Entering Passive Mode (,,,,,).
Here comes the directory listing.
-rwxrwxrwx Sep : good
-rwxrwxrwx Sep : test2
Directory send OK.
ftp>

6. 虚拟用户权限配置

管理员权限
local_root=/data/vsftpd
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES 只能读写不能修改删除
local_root=/data/vsftpd/good
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
virtual_use_local_privs=NO 只能读
local_root=/data/vsftpd
anon_world_readable_only=NO

参考文献:

https://www.cnblogs.com/chenbaoli/p/8195697.html

https://blog.csdn.net/xujin12368/article/details/80920246

http://www.cnblogs.com/fengdejiyixx/p/9324689.html

https://blog.csdn.net/programer_bei/article/details/52333586

centos7.3 vsftpd 多用户配置的更多相关文章

  1. Centos6.9安装vsftpd并配置多用户的方法

    本文介绍了Centos6.9安装vsftpd并配置多用户的方法,分享给大家,具体如下: 一.安装vsftpd ? 1 2 3 4 5 6 7 8 #安装vsftpd yum -y install vs ...

  2. vsftpd安装配置以及常见问题解决

    vsftpd安装配置以及踩坑解决办法,Centos7 nginx已经配置成功了,但是使用http始终没办法访问到图片,那么你来对地方了(在文章末尾是原因) 配置nginx教程:http://blog. ...

  3. CentOS7 安装 vsftpd 服务

    CentOS7 安装 vsftpd 服务 0.FTP简介 FTP服务是一个跨平台的文件共享解决方案 0.1.FTP两种模式的区分:服务端的主被动模式 1)ftp一般分为两种模式,PORTFTP和PAS ...

  4. vsftpd 安装配置

    # vsftp 安装yum install vsftpd -y # 配置用户名密码时需要yum install db* db4* -y# 启动vsftpdservice vsftpd start # ...

  5. 转载:Centos7 从零编译配置Memcached

    序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...

  6. [原创]Centos7 从零编译配置Memcached

    序言 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. Memca ...

  7. centos7+redis+php环境配置

    centos7+redis+php环境配置 下载redis(更多版本可到redis官网进行查找) wget http://download.redis.io/releases/redis-3.0.7. ...

  8. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  9. ubuntu samba服务器多用户配置【转】

    转自:http://www.2cto.com/os/201204/127043.html ubuntu samba服务器多用户配置   在/home/下有多个用户目录A.B...,现通过samba共享 ...

随机推荐

  1. 【Leetcode】【Medium】Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 解题 ...

  2. Elasticsearch 2.x.x版本如何安装bigdesk

    ES插件BigDesk安装 bigdesk支持的最新版本的ES是1.3.0 ... 1.3.x 然而想要在新版本ES上安装(2.x.x),项目中遇到过一些BUG,在ES在最新版本中有修复,所以采用了2 ...

  3. Spark Executor内幕彻底解密:Executor工作原理图、ExecutorBackend注册源码解密、Executor实例化内幕、Executor具体工作内幕

    本课主题 Spark Executor 工作原理图 ExecutorBackend 注册源码鉴赏和 Executor 实例化内幕 Executor 具体是如何工作的 Spark Executor 工作 ...

  4. 150行JavaScript代码实现增强现实

    增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这 ...

  5. C++11学习之share_ptr和weak_ptr

    一.shared_ptr学习 1.shared_ptr和weak_ptr 基础概念 shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用于动态资源管理 shared_pt ...

  6. Vue-Resource请求PHP数据失败的原因

    在写一个Vue项目的时候发现在使用Vue-Resource的post方法请求PHP数据时,完全没有反应,查阅资料才知道没有加配置参数: { emulateJSON:true } 这个配置参数的意思是: ...

  7. 用python自建一个DNS服务器

    前段日子一直在做公司的DNS调度程序,不过由于性能比较差,方案最终废弃掉了.两个半月心血,不想白白浪费掉,于是改了改,把商业秘密相关的部分去掉,变成了一个公共的DNS服务器.其实说的简单点,就是一个可 ...

  8. PHP------XML

    XML XML的含义:可扩展标记语言,设计出来的目的是:传输数据 HTML的含义:超文本标记语言,设计出来的目的是:显示数据 它们两个设计出来的目的是不一样的. 它们两个都是标记语言,相似性比较高. ...

  9. 大数据-图表插件-echarts 样式修改(迭代)

    修改折线图大小   myChart.setOption({             title:{                     text:"价格指数"          ...

  10. 从源码看String,StringBuffer,StringBuilder的区别

    前言 看了一篇文章,大概是讲面试中的java基础的,有如题这么个面试题.我又翻了一些文章看了下,然后去看源码.看一下源码大概能更加了解一些. String String类是final的,表示不可被继承 ...