1.安装vsftpd

yum -y install pam pam-devel db4 db4-tcl vsftpd

2.更名默认配置文件,以便恢复

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #主配置文件
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak #认证配置文件

3.创建虚拟ftp账户和数据库文件

vim /etc/vsftpd/vusers  #添加帐号和密码
vuserone #一行帐户
passwdone #一行密码
vusertwo
passwdtwo

4. 根据虚拟ftp账号密码文件创建数据文件(该文件是真正使用的)

db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

4.创建ftp根目录及虚拟用户映射的系统账户

mkdir -p /data
useradd -d /data/ftp -s /sbin/nologin ftpuser #添加系统用户ftpuser

5.创建虚拟用户认证文件

>/etc/pam.d/vsftpd #清空认证文件
vi /etc/pam.d/vsftpd       #添加以下内容,指定db认证文件
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

6.最后配置主配置文件

>/etc/vsftpd/vsftpd.conf #清空原配置文件
vim /etc/vsftpd/vsftpd.conf #修改成如下内容
anonymous_enable=NO
#设成YES,允许匿名用户登陆
allow_writeable_chroot=YES
#2.3.5以下版本不需要配置,否则无法启动,提示配置文件错误
#vsftpd 2.3.5之后增强了安全检查,不允许限定在主目录下的用户具有写权限,该命令声明可以具有写权限。
local_enable=YES
#允许/禁止本地用户登陆 注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。
write_enable=YES
#设定可以进行写操作。
local_umask=022
#设定上传后文件的权限掩码,文件644,文件夹755
dirmessage_enable=YES
#设定开启目录标语功能
xferlog_enable=YES
#设定开启日志记录功能。
connect_from_port_20=YES
#设定端口20进行数据连接
xferlog_std_format=YES
#设定日志使用标准的记录格式
listen=YES
#开启独立进程vsftpd,不使用超级进程xinetd。设定该Vsftpd服务工作在StandAlone模式下。
pam_service_name=vsftpd
#设定,启用pam认证,并指定认证文件名/etc/pam.d/vsftpd
userlist_enable=YES
#设定userlist_file中的用户将不得使用FTP
tcp_wrappers=YES
#设定支持TCP Wrappers
chroot_local_user=YES
#限制所有用户在主目录
#以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置
guest_enable=YES
#设定启用虚拟用户功能
guest_username=www
#指定虚拟用户的宿主用户
virtual_use_local_privs=YES
#设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vconf
#设定虚拟用户个人Vsftp的配置文件存放路径

7. 配置虚拟用户配置文件

mkdir -p /etc/vsftpd/vconf #添加虚拟用户配置目录
mkdir -p /data/ftp/vuserone #虚拟用户1对应存放数据目录
mkdir -p /data/ftp/vusertwo #虚拟用户2对应存放数据目录
chown -R ftpuser.ftpuser /data/ftp
vim /etc/vsftpd/vconf/vuserone #编辑虚拟用户1的配置文件,添加如下内容
local_root=/data/ftp/vuserone
#指定虚拟用户的具体主路径
anonymous_enable=NO
#设定不允许匿名用户访问
write_enable=YES
#设定允许写操作
local_umask=022
#设定上传文件权限掩码
anon_upload_enable=NO
#设定不允许匿名用户上传
anon_mkdir_write_enable=NO
#设定不允许匿名用户建立目录
idle_session_timeout=600
#设定空闲连接超时时间
data_connection_timeout=120
#设定单次连续传输最大时间
max_clients=10
#设定并发客户端访问个数
max_per_ip=5
#设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
local_max_rate=50000
#设定该用户的最大传输速率,单位b/s
vim /etc/vsftpd/vconf/vusertwo #编辑虚拟用户2的配置文件,添加如下内容
local_root=/data/ftp/vusertwo
#指定虚拟用户的具体主路径
anonymous_enable=NO
#设定不允许匿名用户访问
write_enable=YES
#设定允许写操作
local_umask=022
#设定上传文件权限掩码
anon_upload_enable=NO
#设定不允许匿名用户上传
anon_mkdir_write_enable=NO
#设定不允许匿名用户建立目录
idle_session_timeout=600
#设定空闲连接超时时间
data_connection_timeout=120
#设定单次连续传输最大时间
max_clients=10
#设定并发客户端访问个数
max_per_ip=5
#设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件
local_max_rate=50000
#设定该用户的最大传输速率,单位b/s

8.重启vsftpd 服务: service vsftpd restart

vsftpd 虚拟用户限定在虚拟用户目录的更多相关文章

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

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

  2. Vsftpd: 基于PAM认证的虚拟用户和匿名用户

    目录 环境说明效果说明及截图①. 安装组件②. 系统账户建立③. 编辑vsftpd的配置文件④. 生成虚拟用户的数据库文件⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件⑥. ...

  3. ubuntu server vsftpd 匿名用户上传下载及目录设置

    ubuntu server vsftpd 匿名用户上传下载及目录设置 1:vsftpd服务器安装: sudo apt-get install vsftpd #安装 cd /srv/ #切换到默认匿名用 ...

  4. Linux系统学习 十八、VSFTP服务—虚拟用户访问—配置虚拟用户访问

    配置虚拟用户访问 首先至少要关闭userlist 改完配置文件是要重启服务来使它生效 其实在刚装好vsftp的时候的配置文件不用修改的情况下配置虚拟用户访问控制是最好的 local_root选项不影响 ...

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

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

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

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

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

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

  8. Linux命令整理,用户管理,用户组管理,系统管理,目录管理常用命令

    知识点梳理 Linux课堂笔记 学习目标 能够知道什么是Linux系统以及它的应用场景 能够独立完成安装VMware虚拟机和网络配置 能够独立完成安装CentOS以及远程终端SecureCRT 能够熟 ...

  9. Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传

    一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...

随机推荐

  1. 当文字过长时裁剪(显示省略号或只裁剪 用CSS方法,不用程序)

    原文发布时间为:2009-09-16 -- 来源于本人的百度文章 [由搬家工具导入] CSS中ellipsis()应用【转】 CSS手册中text-overflow属性的定义:   语法: text- ...

  2. dedeCMS php标签使用说明和数据库查询说明

    1.{dede:php}标签想要输出信息 可以直接使用printf , echo,var_dump 之类的打印出来   赋值给@me 无效 2.结合sql语句使用方法 例:{dede:php} $ro ...

  3. 【Visual Studio】error c4996: 'fopen': This function or variable may be unsafe(转)

    原文转自 http://blog.csdn.net/zhangyuehuan/article/details/12012635 [解决方案]项目 =>属性 =>c/c++  =>预处 ...

  4. [转]iOS8 自动调整UITableView和UICollectionView布局

    转自:http://www.cocoachina.com/industry/20140825/9450.html (via:玉令天下的Blog)   本文讲述了UITableView.UICollec ...

  5. 学习总结——JMeter做http接口压力测试

    JMeter做http接口压力测试 测前准备 用JMeter做接口的压测非常方便,在压测之前我们需要考虑这几个方面: 场景设定 场景分单场景和混合场景.针对一个接口做压力测试就是单场景,针对一个流程做 ...

  6. Nginx的简单最小安装!

    一.检查安装环境 rpm -qa gcc pcre pcre-devel zlib zlib-devel openssl pcre, 重写rewrite zlib,为了gzip压缩. gcc,c编译器 ...

  7. (2)WCF客户端调用

    一.visual studion引用生成代理 引入服务端发布元数据的地址(并不是服务的地址) 用服务端是控制台程序 例子1 服务端的配置 <system.serviceModel> < ...

  8. 10.1综合强化刷题 Day3 afternoon

    竞赛时间:????年??月??日??:??-??:?? 题目名称 a b c 名称 a b c 输入 a.in b.in c.in 输出 a.out b.out c.out 每个测试点时限 1s 1s ...

  9. NULL的学问

    在数据库中存在一种特殊的值:NULL(空值).一个字段如果没有被赋值,那么它的值就是NULL,NULL并不代表没有值而是表示值未知.员工信息表中存储着身份证号.姓名.年龄等信息,其中某条记录中年龄字段 ...

  10. POJ 3249 Test for Job (dfs + dp)

    题目链接:http://poj.org/problem?id=3249 题意: 给你一个DAG图,问你入度为0的点到出度为0的点的最长路是多少 思路: 记忆化搜索,注意v[i]可以是负的,所以初始值要 ...