1、创建用于进行FTP验证的帐号密码数据库文件,单数行为账户名,偶数行为密码。
[root@rhel1 vsftpd]# vi /etc/vsftpd/vuser.list
user1
123456
user2
123456
user3
123456
user4
123456
user5
123456

2、使用db_load命令用HASH算法将这个原始的明文信息文件转换成数据库文件,并且再把数据库文件权限调小一些(避免其他人能看到数据库文件的内容),然后再把原始的明文信息文件删除掉。
[root@rhel1 vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
[root@rhel1 vsftpd]# chmod 600 /etc/vsftpd/vuser.db
[root@rhel1 vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
[root@rhel1 vsftpd]# rm -f vuser.list
[root@rhel1 vsftpd]#

3、创建一个用来让虚拟用户映射的系统本地用户,简单来说就是让虚拟用户默认登陆到这个本地用户的家目录中,创建的文件属性也都归属于这个本地用户,避免本地Linux系统无法处理这种虚拟用户创建的文件属性权限。
# useradd scott -s /bin/false

4、建立用户支持虚拟用户的PAM认证文件。
在vsftpd服务程序主配置文件中默认就写有参数pam_service_name=vsftpd,表示登录FTP服务器时是根据/etc/pam.d/vsftpd的文件内容进行安全认证的
修改原来的PAM文件,用于虚拟用户验证。其中PAM文件内的db=参数为刚刚用db_load生成出的账户密码数据库文件的路径,但不用写后缀(添加最后两行,其它全部注释):
[root@rhel1 pam.d]# vi /etc/pam.d/vsftpd
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

5、在vsftpd服务程序主配置文件中修改PAM支持文件
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO  #禁止匿名用户登录
local_enable=YES   #允许本地用户登录
guest_enable=YES    #开启虚拟用户模式
guest_username=scott #第3步创建的用于虚拟帐号映射的系统用户名
allow_writeable_chroot=YES #允许禁锢的FTP根目录可写而不拒绝用户登入请求。
write_enable=YES  #虚拟用户有写权限(上传、下载、删除、重命名)。
pam_service_name=vsftpd #指定pam文件,对应/etc/pam.d/vsftpd这个文件名。

user_config_dir=/etc/vsftpd/vuser_conf  #指定虚拟用户配置文件的路径(可以给每个虚拟用户创建一个单独的配置文件)
virtual_use_local_privs=YES  #让虚拟用户和本地用户scott拥有相同的权限(虚拟用户登录后,默认目录为/home/scott)

说明:

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

6、启SELinux域的允许策略

# setsebool -P ftpd_full_access=on

7、为虚拟用户单独创建配置文件

# mkdir -p /etc/vsftpd/vuser_conf

可以在该目录下为每个虚拟用户创建单独的配置文件。

比如,为user1用户指定目录为/ftpdata/user1,则添加配置文件如下

[root@rhel1 user1]# vi /etc/vsftpd/vuser_conf/user1

local_root=/ftpdata/user1

同样,也可以为其它用户创建配置文件来对用户进行限制。

==============

问题:第5步已设置允许本地帐号登录,但是创建的其它系统帐号无法登录ftp服务,只能用虚拟帐号登录,不知道啥原因。

# vim /etc/vsftpd/vsftpd.conf

local_enable=YES   #允许本地用户登录

转载于:https://www.cnblogs.com/rusking/p/7575044.html

vsftp 虚拟用户测试相关推荐

  1. vsftp虚拟用户无法上传文件,解决办法

    vsftp虚拟用户无法上传文件,解决办法 1.打开/etc/vsftpd 目录中的vsftpd.conf文件,查找:guest_username=xxx,这里指的是vsftpd虚拟用户对应的实 际系统 ...

  2. centos5.8 安装配置vsftp虚拟用户

    vsftp因为公司时不时要用,也不是经常弄ftp,不常用就老是忘记有些东西,所以就在网上查些资料和自己遇到的一些问题结合起来写一个文档,以后需要使用ftp的时候搭建比较方便,使用虚拟用户不用担心用户登 ...

  3. 使用vsftp虚拟用户实现安全访问控制

    一.ftp连接方式 1.命令连接 ftp在与用户交互时,首先打开的是TCP的21号端口,建立命令连接,这个连接会始终存在,直到用户输入bye的那一刻,才断开命令连接. 2.数据连接 1)主动连接 主动 ...

  4. vsftp虚拟用户权限问题

    virtual_use_local_privs=NO #匿名用户不具有本地用户的权限,看不到目录中的文件,即不可浏览. anon_world_readable_only=NO #匿名用户可以浏览FTP ...

  5. 删除vsftp虚拟用户脚本

    和上一个自动添加脚本一致 #!/bin/bash time=`date +%Y%m%d%k%M` bakfile="user_logn.bak$time" cp /etc/vsft ...

  6. vsftp账号_Linux下vsftp的重新安装和配置虚拟用户

    Linux下vsftp的重新安装和配置虚拟用户 上一篇 / 下一篇  2007-05-30 18:00:18 / 个人分类:Linux 重新安装和配置虚拟用户 以下都是在root用户下进行的 #tar ...

  7. 让Vsftp支持虚拟用户

    让Vsftp支持虚拟用户                   --转载 http://blog.chinaunix.net/uid-317994-id-2133014.html          很早 ...

  8. vsftp本地用户,虚拟用户,匿名用户同时工作

    vsftpd+mysql  实现本地用户,匿名用户,虚拟用户同时工作 大纲 1.安装vsftpd mysql  pam-mysql 2.添加虚拟用户(使用本地数据库和数据库服务器) 3.实现本地用户, ...

  9. VSFTPD的虚拟用户管理配置

    上一节我们通过系统用户完成了VSFTPD的部署,现在DB工具实现虚拟用户的管理.文章只是自己工作中的使用说明如有写作错误,欢迎大家指出错误.... 三.虚拟用户 需求:建立user1.user2两个用 ...

最新文章

  1. 科大星云诗社动态20210307
  2. 【机器学习基础】前置知识(五):30分钟掌握常用Matplotlib用法
  3. C++二叉堆binary heap (附完整源码)
  4. java上传excel文件代码,求java把上传文件的excel表中数据存入数据库中.实现录入的代码?...
  5. 12家无人驾驶公司新进展:驾照怕白考了!
  6. 【Linux】Linux多个关机命令详解
  7. 三.rocketmq-console
  8. Winfrom开发之动态生成TreeView树形菜单
  9. (TPC-H测试 SF=10,SF=200) PostgreSQL 11 vs 10 vs Deepgreen
  10. 让Apache Shiro保护你的应用[转]
  11. 价值连城 人工智能的通识课 - 吴恩达Andrew Ng AI For Everyone
  12. Java: 将中文名转换为指定格式拼音
  13. Win10,Office2013出现“您的组织策略阻止我们为您完成此操作”怎么解决?
  14. python turtle 画蜡笔小新_蜡笔小新有几集?作者到底怎么死的啊?
  15. 文书档案管理系统服务器版,创奇文书档案管理系统客户端官方版
  16. 生信中的PCA ,PCoA
  17. 多商家入驻分销平台基本功能设计
  18. UEFI模式双硬盘+双系统安装(Win8.1+Ubuntu18.04)
  19. 深圳大学数学文化赏析MOOC答案
  20. Android 仿微信聊天气泡

热门文章

  1. AllsitePasswd 全站密码访问插件 支持自定义主题模板
  2. 东方终焉组引导页自适应html源码 视频背景炫酷
  3. 小程序 | 获取用户头像信息接口改进:getUserInfo的使用
  4. c高级语言程序设计B试题,高级语言程序设计试题(B)卷.doc
  5. mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
  6. 有关ArrayList的toArray()方法的一些探究
  7. 幕乔美化版音乐网站源码
  8. 云开发外卖CPS小程序源码
  9. 10个优秀的Objective-C和iOS开发在线视频教程
  10. 【高清截图】UbuntuKylin 14.04 桌面版安装步骤