要求如下:

1、所有用户主目录为/var/www宿主为virtual用户;

2、ftpuser1用户只能下载不能上传以及删除文件重命名操作;

3、ftpuser2可以下载与上传文件以及删除重命名操作;

4、ftpadmin可以下载与上传文件以及删除重命名操作,上传文件的umask为022;

本机ip:192.168.1.3

anonymous_enable=NO -------------------#是否开启匿名用户,匿名都不安全,不要开
local_enable=YES ------------------ #允许本机账号登录FTP
write_enable=YES ------------------ #允许账号都有写操作
local_umask=022------------------ #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
#anon_upload_enable=YES ------------------ #匿名用户是否有上传文件的功能,不要开
#anon_mkdir_write_enable=YES------------------ #匿名用户是否有创建文件夹的功能,不要开
dirmessage_enable=YES ------------------ #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES------------------ #日志记录
connect_from_port_20=YES------------------ #开放port模式的20端口的连接
#chown_uploads=YES------------------ #允许没人认领的文件上传的时候,更改掉所属用chown_uploads=YES的前提下,所属的用户
#xferlog_file=/var/log/xferlog ------------------#日志存放的地方
xferlog_std_format=YES ------------------ #日志成为std格式
#idle_session_timeout=600 ------------------ #用户无操作服务器会主动断开连接,单位秒
#data_connection_timeout=120 ------------------ #数据连接超时
#nopriv_user=ftpsecure------------------ #以 ftpsecure 作为此一服务执行者的权限。因为ftpsecure 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
#async_abor_enable=YES------------------ #异步停用,由客户发起
#ascii_upload_enable=YES------------------ #使用ascii格式上传文件
#ascii_download_enable=YES------------------ #使用ascii格式下载文件
#ftpd_banner=Welcome to blah FTP service------------------ #欢迎词
#deny_email_enable=YES------------------ #以anonymous用户登录时候,是否禁止掉名单中的emaill密码。
#banned_email_file=/etc/vsftpd/banned_emails------------------ #以anonymous用户登录时候,所禁止emaill密码名单。
chroot_local_user=YES ------------------ #限制用户只能在自己的目录活动
#chroot_list_enable=YES ------------------ #例外名单,如果是YES的话,这个有点怪,不懂别乱开,上面的选项会跟这个名单反调(会被上面的选项影响)。
#chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO ------------------ #是否允许使用ls -R等命令
listen=YES ------------------ #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务。
#listen_ipv6=YES------------------ #监听ipv6端口,还没普及呢!
pam_service_name=vsftpd------------------ #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES------------------ #使用允许登录的名单
userlist_deny=NO ------------------ #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES------------------ #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES------------------ #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
user_config_dir=/etc/vsftpd/userconfig------------------ #主目录配置,修改后到这个目录中在修改用户配置

pasv_min_port=6000 (0为随机分配)
pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)
------------------#被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的。

配置文件说明摘抄☞:https://blog.csdn.net/annita2019/article/details/92004340

一、安装服务。

[root@localhost ~]# yum -y install vsftpd

二、配置主配置文件。

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# grep -v "^# \|^#$" vsftpd.conf.bak  > vsftpd.conf  #过滤一下。不然看着乱

[root@localhost vsftpd]# vim vsftpd.conf

增加:

allow_writeable_chroot=yes  #是否允许囚禁的用户进行写权限
user_config_dir=/etc/vsftpd/user  #权限映射目录
guest_enable=YES  #启用虚拟用户
guest_username=virtual   #映射用户

修改:

pam_service_name=vsftpd

为:

pam_service_name=pa   #定义pam模块

三、pam模块认证。

首先先要去添加一下用户账号、以及密码,并hash加密。

[root@localhost vsftpd]# vim up   #这儿我用up来代表用户信息。username、password的缩写

增加:

ftpuser1   #用户名
123      #密码
ftpuser2  #用户名
123       #密码
ftpadmin  #用户名
123  #密码

[root@localhost vsftpd]# db_load  -T -t hash -f up up.db   #加密用户信息

[root@localhost vsftpd]# vim /etc/pam.d/pa #编辑pam认证

增加:

auth required pam_userdb.so db=/etc/vsftpd/up
account required pam_userdb.so db=/etc/vsftpd/up

四、定义虚拟用户的权限。

[root@localhost vsftpd]# mkdir user

[root@localhost vsftpd]# cd user

[root@localhost user]#  touch ftpuser1  #要求是ftpuser1只能进行下载,啥都不能了,所以直接创建一个空文件在这儿就好啦。

[root@localhost user]# vim ftpuser2

增加:

anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes

[root@localhost user]# vim ftpadmin

增加:

anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_umask=022

[root@localhost user]# useradd -s /sbin/nologin -d /var/www virtual  #创建映射的用户

[root@localhost user]# systemctl restart vsftpd

[root@localhost user]# echo haha > /var/www/1.txt #创建一个文件,方便连接的时候,好识别是不是连接对了。

测试ftpuser1:

测试ftpuser2:

解决:

[root@localhost vsftpd]# chown virtual /var/www/

测试ftpadmin:

有一些权限是肯定有的。我就不一一测试了。

centos7-vsftp(虚拟用户)的更多相关文章

  1. vsftp虚拟用户登录配置详解

    一.安装:1.安装Vsftpd服务:# yum install vsftpd 2.安装DB4部件包:这里要特别安装一个db4的包,用来支持文件数据库.# yum install db4-utils 二 ...

  2. vsftp 虚拟用户高级设置(转载)

    发布:xiaokk   来源:net     [大 中 小] vsftp 虚拟用户高级设置  本文转自:http://www.jbxue.com/article/1724.html 1.安装所需软件包 ...

  3. vsftp 虚拟用户+MySQL认证独立家目录

    centos7 系统 安装包 yum -y install mariadb vsftpd openssl-devel  mysql-devel  pam-devel yum -y groupinsta ...

  4. vsftp虚拟用户配置

    找了很久,终于找到像样一点的文章,很详细,参数方面懂英文基本能看懂,一个教程是否有用,关键在于细节.错了一点点就不能配下去了. ------------------------------------ ...

  5. vsftp 虚拟用户

    首先安装vsftp db-4wiki mkdir -p /opt/ftp 创建用户 sudo useradd virtual -d /opt/ftp -s /bin/false sudo chown ...

  6. centos 7.2下搭建vsftp 虚拟用户

    虚拟用户搭建vsftp 要求一: 只允许上传 下载 不能删除 不能更换名称 yum install pam* yum install db4* -y yum install vsftpd chkcon ...

  7. CentOS 7搭建vsftp(虚拟用户方式登录)

    说明: vsftpd的版本:vsftpd-3.0.2-22.el7.x86_64 ftp 根目录 : /data/ftp ftp 配置文件目录:/etc/vsftpd ftp 虚拟用户权限配置文件目录 ...

  8. Centos7 vsftpd虚拟用户权限控制(vsftpd虚拟用户限制IP访问)

    实验目标:(新增限制虚拟机用户登陆的IP) 实现在同一跟目录下对admin,upload,download三个虚拟用户的不同权限的控制.具体权限控制列表如下: 用户名 权限说明 admin 管理员,可 ...

  9. vsftp 虚拟用户测试

    1.创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码.[root@rhel1 vsftpd]# vi /etc/vsftpd/vuser.listuser1123456user ...

  10. vsftp虚拟用户方式访问

    需求:外部人员需要对公司服务器上某个文件夹内容进行读写操作 文件目录信息:/opt/abc drwxr-xr-x 9 www  www       4096 12月  4 13:02 abc   #注 ...

随机推荐

  1. Tips for traing DNN

    1.   一般的机器学习方法不会在train好的模型上检查training data的结果,因为DNN在training data上都没有办法获得很好的正确率, 所以要先回头看一下要对模型做什么修改, ...

  2. HttpClient测试

    导入maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson&l ...

  3. 史无前例!一季度Facebook移除22亿假账号

    导读 北京时间5月26日上午消息,Facebook表示平台在第一季度移除了22亿虚假账号.这一创纪录的数据显示了这家公司正在与大量试图破坏全球最大社交网络真实性的负面因素进行斗争. 北京时间5月26日 ...

  4. jQuery 里的 Promise

    1  $.ajax("test.html").done(function(){ alert("哈哈,成功了!"); }).fail(function(){ al ...

  5. 2018年Android面试题含答案--适合中高级(下)(转)

    这里是我整理出来的 面试题,答案我花了很久的时间.加上我自己的理解整理出来的,作者不易,请谅解.有答案的的:https://xiaozhuanlan.com/topic/6132940875   1. ...

  6. Mysql自动备份与还原 转

    Mysql自动备份与还原 一.自动备份:将以下代码保存为*.bat批处理脚本,然后再添加Windows定时作业,如每天凌晨2点执行:set s=%date:~0,4%%date:~5,2%%date: ...

  7. Sklearn 预处理数据

    ## 版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Lear ...

  8. MongoDB Projection

    版权所有,未经许可,禁止转载 章节 MongoDB 入门 MongoDB 优势 MongoDB 安装 MongoDB 数据建模 MongoDB 创建数据库 MongoDB 删除数据库 MongoDB ...

  9. JavaScript——装饰者模式

    今天打算开始系统的学习设计模式,虽然之前有看过<大话设计模式>但是没能够静下心来写学习笔记导致很多内容都只是有一个概念而不会去应用.这次要记下学习的过程.接下来进入主题. 何为设计模式?设 ...

  10. Web基础之Servlet

    Servlet Servlet : server applet,直译服务小程序.那Servlet到底是什么呢? Servlet说白了其实就是一个接口,接口的作用是什么?规范呗,这个接口规定了下面三个问 ...