VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP
首先安装

 

主配置文件:/etc/vsftpd/vsftpd.conf

【匿名用户】
anonymous_enable=yes 是否可以匿名访问

anon_umask=022  设置匿名用户所上传文件的默认权限掩码值

anon_root=/var/ftp 设置匿名用户的FTP根目录(缺省为/var/ftp/)

anon_upload_enable=yes  是否可以匿名用户上传文件

anon_mkdir_write_enable=yes  是否可以匿名用户有创建目录的写入权限

anon_other_write_enable=yes   是否可以匿名用户有其他写入权限。如对问件改名、覆盖、删除文件等

anon_max_rate=0  限制匿名用户的最大传输速率(0为不限制),单位为字节/秒

【本地用户】
local_enable=yes 是否可以本地系统用户访问

local_umask=022 设置本地用户所上传文件的默认权限掩码值

local_root=/var/ftp 设置本地用户的ftp根目录(缺省为用户的宿主目录)

chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中

local_max_rate=0  限制本地用户的最大传输速率(0为不限制),单位为字节/秒

【全局配置】
listen=yes 是否以独立运行的方式监听服务

listen_address=0.0.0.0 设置监听ftp服务的IP地址

listen_port=21 设置监听FTP服务的端口号

write_enable=yes 启用任何形式的写入权限(如上传,删除文件等)都需要开启此项

download_enable=yes 是否可以下载文件(建立仅限浏览,上传的ftp服务器时可将其设为“no”)

dirmessage_enable=yes  用户切换进入目录时显示.message文件(如果存在)的类容

xferlog_enable=yes  启用xferlog日志,默认记录到/var/log/xferlog

xferlog_std_format=yes 启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式

connect_from_port_20=yes 同意服务器主动模式(从20端口建立数据连接)

pasv_enable=yes 同意被动模式连接

pasv_max_port=24600 设置用于被动模式的服务器最大端口号

pasv_min_port=24500 设置用于被动模式的服务器最小端口号

pam_service_name=vsftpd 设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)

userlist_enable=yes 是否启用user_list用户列表文件  /etc/vsftpd/ptpusers

userlist_deny=yes 是否禁用user_list列表文件中的用户账号 /etc/vsftpd/uer_list

max_clients=0 最多同意多少个客户端同是连接(0为不限制)

max_per_ip=0 对来自同一个ip地址的客户端,最多同意多少个并发连接(0为不限制)

tcp_wrappers=yes 是否启用TCP_Wrappers主机访问控制

开启虚拟用户
guest_enable=YES   启用用户隐射功能  
guest_username=share  映射的系统用户名字 本地用户
pam_service_name=share  指定 pam认证文件
user_config_dir=/etc/vsftpd/share_dir
 
开启匿名或者本地用户登录FTP 都是给一样的权限,要么就是一起把权限去了,不方便管理,所以vsftp的一个功能就是 虚拟用户 
 
这里我把思路理清 全部写出来!
要求匿名用户可以浏览,下载但是不能上传!本地用户不能登录
虚拟用户 chenhao有下载上传写入 但是不能删除
虚拟用户 fenglei 有浏览下载权限但是不能上传
虚拟用户:首先创建虚拟用户列表
vi /etc/vsftpd/share(名字随便填)
第一行 名字 第二行 密码

创建数据库DB
cd /etc/vsftpd/
db_load -T -t (类型)hash -f share share.db(转换后名字)

file share.db 查看格式

然后把文件隐藏起来 chmod 600 /etc/vsftpd/share*

把权限给最低

然后加用户测试 :useradd -d 指定家目录 -s 指定shell /sbin/nologin 用户名share 不给登陆到系统

创建虚拟用户支持

建立PAM认证文件
vi /etc/pam.d/share 名字随便起 但是要知道什么意思 跟上面名字一样 方便一些

auth       required     pam_userdb.so    db=/etc/vsftpd/share   (DB在哪里)后缀DB直接隐藏了 
account       required     pam_userdb.so    db=/etc/vsftpd/share

新建配置文件保存 
最后修改主配置文件 vi /etc/vsftpd/vsftpd.conf  加4条语句 并且把匿名的语句注释了和一些权限放到最低,直接给子文件配置

guest_enable=YES   启用用户隐射功能   
guest_username=share  映射的系统用户名字 本地用户
pam_service_name=share  指定 pam认证文件
user_config_dir=/etc/vsftpd/share_dir

创建子文件 mkdir /etc/vsftpd/share_dir 随便建的子目录 在里面建子文件
cd /etc/vsftpd/share_dir 切换进去
然后建子文件 就是用户的需求 可以给那些权限
比如 chenhao 用户可以登录 能够正常浏览,下载文件,也可以上传文件,但是不能够删除,新建目录

vi chenhao

local_root=/home/share  指定的家目录
anon_upload_enable=yes  可以上传文件 但是不能进行删除或者新建 因为 没有给他权限

(必须锁在家目录 让他不能去系统别的地方)
chroot_local_user=yes 是否将ftp本地用户禁锢在宿主目录中

并且linux 主机中的系统用户无法登陆FTP
并且匿名用户只能下载 不能上传

测试结果:

测试虚拟用户

上传下载都可以

上传不可以 下载可以!

在主配置文件上必须要添加这句话!后面跟的是你子文件夹!

必须要加这句话!

启用独立配置文件

注意:权限一定要给755 否则会发现无法浏览目录等情况!做实验发现
[root@localhost ~]# chmod 775 /home/share/

[root@localhost ~]# chown share:share /home/share/

然后按需求 复制上面的参数保存退出就可以!

达到不同用户不同权限更方便企业管理员管理每个用户账户,并且很安全,权限可以自由分配!

修改完成后 重新启动服务!service vsftpd reload 重新加载!
 
 
本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1219713

 

FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)的更多相关文章

  1. vsftpd搭建ftp服务,并实现虚拟用户访问

    安装vsftpd服务: yum install vsftpd -y [root@wadeson ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam. ...

  2. linux之FTP服务搭建 ( ftp文件传输协议 VSFTPd虚拟用户)

    FTP服务搭建 配置实验之前关闭防火墙 iptables -F iptables -X iptables -Z systemctl stop firewalld setenforce 0 1.ftp简 ...

  3. linux(十二)___Apache服务器用户认证、虚拟主机的配置

    创建xiangkejin  zhangsan两个用户 可看见文件中创建的两个用户: 建立虚拟目录并配置用户认证 ①建立虚拟目录 /xiangkejin ②在Apache的主配置文件httpd.conf ...

  4. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  5. 高级运维(二):搭建Nginx服务器、用户认证、基于域名的虚拟主机、SSL虚拟主机、Nginx反向代理

    一.搭建Nginx服务器 目标: 在IP地址为192.168.4.5的主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能: 1> SSL加密功能 2> 设置Ng ...

  6. linux下建ftp用户,并限制用户访问路径[转]

    目的是:在linux系统上建立ftp用户,并限制其通过ftp访问时,只能访问用户主目录:其主目录显示路径也是“/”,看不到上级目录.     例如,我要建立用户usertest,密码为usertest ...

  7. Linux:linux下建ftp用户,并限制用户访问路径

    安装:ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service vsftpd start 关闭 ...

  8. linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹

    在Linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...

  9. 用户管理 之 Linux 用户(User)查询篇

    用户(User)和用户组(Group)的配置文件,是系统管理员最应该了解和掌握的系统基础文件之一,从另一方面来说,了解这些文件也是系统安全管理的重要组成部份:做为一个合格的系统管理员应该对用户和用户组 ...

随机推荐

  1. 转-C语言中.h和.c文件解析

    C语言中.h和.c文件解析(很精彩)   简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:       1.预处理阶段 2.词 ...

  2. python ctypes

    official tutorial for ctypes libhttps://docs.python.org/3/library/ctypes.html 1 ctypes exports the c ...

  3. java结合testng,利用yaml做数据源的数据驱动实例

    testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以yaml为例: 备注:@DataProvider的返回 ...

  4. 自定义admin(self_admin)

    admin.site.register(models.UserInfo)admin.site.register(models.Book,Book_admin)######当下面注册的这个表里面没有这个 ...

  5. windows连接服务端的域名正常,linux却不通,(针对于负载均衡后端节点设置)

    1.初步判断不是网络上的,因为windows主机访问正常, 2.修改客户端linux主机 net.ipv4.tcp_tw_recycle=0,测试是否正常,(服务器当连接数达到一定量之后,会执行rec ...

  6. numpy函数:[1]shape用法

    shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.它的输入参数可以使一个整数表示维度,也可以是一个矩阵.

  7. android招聘啦,美图秀秀欢迎你加入!

    前言 最近朋友公司招聘,美图秀秀大家一定很熟悉吧,欢迎你的加入. 了解相关更多技术以外的,可参考<除了敲代码,你还有什么副业吗?>,再往下看,今天给需要换工作或者还未找到工作的童鞋们谋一个 ...

  8. 安卓易学,爬坑不易—腾讯老司机的RecyclerView局部刷新爬坑之路

    前言 安卓开发者都知道,RecyclerView比ListView要灵活的多,但不可否认的里面的坑也同样埋了不少人.下面让我们看看腾讯开发工程师用实例讲解自己踩坑时的解决方案和心路历程. 话说有图有真 ...

  9. C语言学习及应用笔记之二:C语言static关键字及其使用

    C语言有很多关键字,大多关键字使用起来是很明确的,但有一些关键字却要相对复杂一些.我们这里要说明的static关键字就是如此,它的功能很强大,相应的使用也就更复杂. 一般来说static关键字的常见用 ...

  10. linux 下创建共享文件夹

    首先需要在win下共享一个盘 然后设置virtulbox 然后修改一串代码 参考原文 https://jingyan.baidu.com/article/2fb0ba40541a5900f2ec5f0 ...