vsftpd 虚拟用户的作用是 通过不同的虚拟用户可以有不同的根目录。

从 2.3.5 版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能在具有写权限了,如果检查发现还有写权限,就会报该错误!

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

因此,本次分别用 Centos 6 和 Centos 7 来分别配置 vsftpd 虚拟用户

1. Centos6 vsftpd-虚拟用户配置

----------------------------------------------------
系统版本:CentOS release 6.7
vsftpd版本:vsftpd-2.2.2-24
虚拟用户:hkey
虚拟用户根目录:/data/hkey
----------------------------------------------------

# yum install vsftpd -y
# mkdir -pv /data/hkey
# sed -i -e 's/^anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^write_enable=YES/#write_enable=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^pam_service_name=vsftpd/#pam_service_name=vsftpd/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/listen=NO/listen=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/listen_ipv6=YES/#listen_ipv6=YES/g' /etc/vsftpd/vsftpd.conf
# echo -e 'pam_service_name=vsftpd.vu
virtual_use_local_privs=NO
guest_enable=YES
guest_username=root
user_config_dir=/etc/vsftpd/vconf' >> /etc/vsftpd/vsftpd.conf
# egrep -v '^#|^$' /etc/vsftpd/vsftpd.conf
#关闭匿名访问
anonymous_enable=NO
#启用本地系统用户,包括虚拟用户
local_enable=YES
#本地用户umask值
local_umask=022
dirmessage_enable=YES
#启用日志
xferlog_enable=YES
xferlog_std_format=YES
#关闭ftp-data端口,相当于不使用主动模式
connect_from_port_20=YES
#限制用户不能离开FTP主目录,启用并设置例外用户清单
chroot_local_user=YES
#使用ipv4进行监听
listen=YES
#启用全局用户例外清单
userlist_enable=YES
#启用tcp封装
tcp_wrappers=YES
#pam认证文件名称,位于/etc/pam.d/
pam_service_name=vsftpd.vu
#虚拟用户权限是否与本地用户相同。为NO时,将与匿名用户的权限相同,在每个虚拟用户配置文件里设置匿名用户的选项等于虚拟用户的权限
virtual_use_local_privs=NO
#启用guest后,所有非匿名用户将映射到guest_username进行访问,包括本地系统用户也不能使用,并且转换成一个虚拟用户,与其他虚拟用户的配置方法一样
guest_enable=YES
# 虚拟用户使用的主用户(这里使用 root是为了比较方便配置各种目录)
guest_username=root
#虚拟用户配置文件目录
user_config_dir=/etc/vsftpd/vconf
# mkdir /etc/vsftpd/vconf/

# 一行用户名,一行密码,严格遵守这样的格式
# cat /etc/vsftpd/vuser.txt
hkey
hkey123 # 生成数据库
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db # 添加认证文件
# cat /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

【开放所有权限】

# cat /etc/vsftpd/vconf/hkey   

local_root=/data/hkey # 设置登录后禁锢的根目录
write_enable=yes # 开发写权限
anon_world_readable_only=no # 开放下载权限
anon_upload_enable=yes # 开放上传权限
anon_mkdir_write_enable=yes # 开放创建目录的权限
anon_other_write_enable=yes # 开放删除和重命名的权限

【只开启上传下载权限】

# cat /etc/vsftpd/vconf/hkey
local_root=/data/hkey
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=yes

2. Centos7 vsftpd-虚拟用户配置

----------------------------------------------------
系统版本:CentOS release 7.0
vsftpd版本:vsftpd-3.0.2-22
虚拟用户:hkey
虚拟用户根目录:/data/hkey
----------------------------------------------------

# yum install vsftpd -y
# mkdir -pv /data/hkey
# sed -i -e 's/^anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^write_enable=YES/#write_enable=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/^pam_service_name=vsftpd/#pam_service_name=vsftpd/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/listen=NO/listen=YES/g' /etc/vsftpd/vsftpd.conf
# sed -i -e 's/listen_ipv6=YES/#listen_ipv6=YES/g' /etc/vsftpd/vsftpd.conf
# echo -e 'pam_service_name=vsftpd.vu
virtual_use_local_privs=NO
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vconf
allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf
# mkdir /etc/vsftpd/vconf/

# 一行用户名,一行密码,严格遵守这样的格式
# cat /etc/vsftpd/vuser.txt
hkey
hkey123 # 生成数据库
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db # 添加认证文件
# cat /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

【开放所有权限】

# cat /etc/vsftpd/vconf/hkey   

local_root=/data/hkey # 设置登录后禁锢的根目录
write_enable=yes # 开发写权限
anon_world_readable_only=no # 开放下载权限
anon_upload_enable=yes # 开放上传权限
anon_mkdir_write_enable=yes # 开放创建目录的权限
anon_other_write_enable=yes # 开放删除和重命名的权限

【只开启上传下载权限】

# cat /etc/vsftpd/vconf/hkey 
local_root=/data/hkey
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=yes

vsftpd 虚拟用户配置的更多相关文章

  1. VSFTPD虚拟用户配置

    转载:http://www.cnblogs.com/allenjin/archive/2011/12/03/2274542.html 以下操作验证OK!!!! VSFTPD虚拟用户配置 VSFTP = ...

  2. 烂泥:ubuntu下vsftpd虚拟用户配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我微信ilanniweb. 以前搭建vsftpd都是在centos下,本以为在ubuntu按照以前的步骤搭建即可.可 ...

  3. [ 总结 ] vsftpd 虚拟用户配置

    需求:在不更改目录权限的前提下,ftp用户对目录里的文件拥有所有权. [root@server2 ~]# yum install vsftpd -y [root@server2 ~]# cd /etc ...

  4. vsftpd虚拟用户创建实例(转载)

    vsftpd虚拟用户创建实例 发布:theboy   来源:net     [大 中 小] vsftpd虚拟用户创建实例,有需要的朋友可以参考下.  vsftpd虚拟用户创建实例,有需要的朋友可以参考 ...

  5. FTP服务器虚拟用户配置

    FTP服务配置问题及解决方案 使用被动模式,设置云主机IP为被动模式数据传输地址:在配置文件内添加 pasv_enable=YES pasv_promiscuous=YES pasv_address= ...

  6. vsftpd安装及虚拟用户配置

    服务器环境:CentOS6.9 Linux 2.6.32-696.10.1.el6.x86_64 安装vsftpd.db4.db4-utils # yum -y install vsftpd db4 ...

  7. Ubuntu 12.04 LTS为例演示vsftpd虚拟用户 的配置

    vsftpd虚拟用户   2012-05-19 15:46:59|  分类: GNU/Linux |  标签:ubuntu  vsftpd  ftp  虚拟用户  |举报|字号 订阅 我们登录FTP有 ...

  8. vsftpd服务安装与虚拟用户配置

    vsftpd的全名是“Very secure FTP Daemon” 一.安装vsftpd安装db4-util用于生成认证文件 yum -y install db4-utils 安装vsftpd yu ...

  9. Vsftpd虚拟用户登陆配置(Centos7)

    1 安装Vsftpd服务 # yum install vsftpd -y vsftp虚拟用户是为了保证FTP服务器的安全性,由vsftpd服务器提供的非系统用户账号, 相对于FTP的本地用户来说,虚拟 ...

随机推荐

  1. 【刷题】SPOJ 705 SUBST1 - New Distinct Substrings

    Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...

  2. [BZOJ5339] [TJOI2018]教科书般的亵渎

    题目链接 BZOJ题面. 洛谷题面. Solution 随便推一推,可以发现瓶颈在求\(\sum_{i=1}^n i^k\),关于这个可以看看拉格朗日插值法. 复杂度\(O(Tm^2)\). #inc ...

  3. 洛谷 P2898 [USACO08JAN]haybale猜测Haybale Guessing 解题报告

    [USACO08JAN]haybale猜测Haybale Guessing 题目描述 给一段长度为\(n\),每个位置上的数都不同的序列\(a[1\dots n]\)和\(q\)和问答,每个问答是\( ...

  4. 有序数列第K小

    有序数列第K小 题目描述 给出两个长度分别为\(n,m\)的单调非递减数列,求出它们合并后的第\(k\)小值. 输入输出格式 输入格式: 第一行三个数,\(n,m,k\)如题意所述: 第二行\(n\) ...

  5. Codeforces Round #401 (Div. 2) A B C 水 贪心 dp

    A. Shell Game time limit per test 0.5 seconds memory limit per test 256 megabytes input standard inp ...

  6. Codeforces Round #307 (Div. 2) D 矩阵快速幂+快速幂

    D. GukiZ and Binary Operations time limit per test 1 second memory limit per test 256 megabytes inpu ...

  7. E. Border

    E. Border time limit per test 1 second memory limit per test 256 megabytes input standard input outp ...

  8. 【IntelliJ IDEA 12使用】导入外部包

    以前用eclipse,现在用IntelliJ IDEA,发现它确实是个很不错的工具. 用IntelliJ IDEA12这个版本导入外部JAR包,这样来操作,打开Project Structure,在m ...

  9. Django请求原理(二)

    1,Web服务器(中间件)收到一个http请求 2,Django在URLconf里查找对应的视图(View)函数来处理http请求 3,视图函数调用相应的数据模型来存取数据.调用相应的模板向用户展示页 ...

  10. 题解【poj2774 Long Long Message】

    Description 求两个串的最长连续公共字串 Solution 后缀数组入门题吧 把两个串连在一起,中间加一个分隔符,然后跑一遍后缀数组,得到 height 和 sa 一个 height[i] ...