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. C++数组怎么复制

    C++数组怎么复制: #include <string.h>main(){int a[10]={34,56,4,10,77,51,93,30,5,52};int b[10];memcpy( ...

  2. win+ R下的常见命令

    -------------------------电脑运行常见命令----------------------------- Windows+R输入cmd 运行net start mssqlserve ...

  3. SAP Customer Data Cloud(Gigya)的用户搜索实现

    我在Gigya前台根据email搜索,输入一个邮箱地址,回车,在Chrome开发者工具里观察到到后台的网络请求: 这是一个post请求: __RequestVerificationToken 请求体: ...

  4. 使用jMeter构造逻辑上有依赖关系的一系列并发请求

    相信前端开发工程师对CSRF(Cross-site request forgery)跨站请求伪造这个概念都非常熟悉,有的时候也简写成XSRF,是一种对网站的恶意利用. 尽管听起来像跨站脚本(XSS), ...

  5. AngularJS中页面传参方法

    1.基于ui-router的页面跳转传参 (1) 用ui-router定义路由,比如有两个页面,一个页面(producers.html)放置了多个producers,点击其中一个目标,页面跳转到对应的 ...

  6. ubuntu环境安装谷歌驱动命令

    1.sudo apt-get install chromium-chromedriver. 2.直接下载:http://chromedriver.storage.googleapis.com/inde ...

  7. Mac iTerm2使用总结

    1.快捷键大全新建标签:command + t关闭标签:command + w切换标签:command + 数字 command + 左右方向键切换全屏:command + enter查找:comma ...

  8. 实现websocket

    转:http://www.cnblogs.com/dolphinX/p/3462898.html 在之前的博客中提到过看到html5 的websocket后很感兴趣,终于可以摆脱长轮询(websock ...

  9. ASP.NET Web API编程——异常捕获

    1 向客户端发送错误消息 使用throw new HttpResponseException()向客户端抛出错误信息. HttpResponseException包含两个重载的构造函数,其中一个是构造 ...

  10. [转]Asp.Net url中文乱码

    一般有3种方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码.  传递 string Name = "中文参数"; Resp ...