若开启selinux的话,那么就需要

chcon -R -t public_content_t /var/ftp/user1/

chcon -R -t public_content_t /var/ftp/user2/

setsebool -P ftp_home_dir on

一、首先需要装的包有:

yum install vsftpd lftp ftp libdb-utils(生成虚拟用户验证数据库文件) -y

systemctl restart vsftpd.service  启动服务

systemctl enable vsftpd    设置开机启动

systemctl status vsftpd     查看服务启动状态与启动状态时间,加载的配置文件等。

二、建立一个虚拟用户的数据库文件

#!/bin/bash

cat > /etc/vsftpd/auth_virtual_ftp_user <<END
user1
123
user2
456
END

需要这个文件来生成数据库文件

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

-T :允许non-Berkeley DB应用程序容易文本文件加载到数据库

-t:指定生成数据库文件类型

指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型

后面就是要用哪个文件来生成数据库文件了,前面是文本文件,后面是数据库文件,什么名字都可以,但数据库文件必须是以*.db结尾的

三、配置vsftpd文件

首先要备份一份初始文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak

cat /etc/vsftpd/vsftpd.conf.$(date +%Y-%m-%d).bak | grep -v ^# | tr -s '\n' > /etc/vsftpd/vsftpd.conf

把里面多余的空行用tr -s '\n' 来清理掉,接着再重定向到vsftpd的配置文件中。

cat /etc/vsftpd/vsftpd.conf   按以下要求来修改配置文件

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO      (默认是YES,改为NO的话,启动服务时就不会出错了)
listen_ipv6=YES
#userlist_enable=YES     如果这个开启的话,那么必须要有下面的这个文件

#userlist_file=/etc/vsftpd.user_list 只有这文件里面的用户才用访问

pam_service_name=pam_vsftpd   这个文件对应的位置是/etc/pam.d/pam_vsftpd
userlist_enable=YES
tcp_wrappers=YES
use_localtime=YES
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/user_conf

创建虚拟用户配置目录

mkdir /etc/vsftpd/user_conf/

四、修改pam 模块

[root@server1 ~]# cat /etc/pam.d/pam_vsftpd
auth       required     pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user
account    required     pam_userdb.so    db=/etc/vsftpd/auth_virtual_ftp_user

这里的*.so 文件全部都是默认在/lib64/security/这个目录下

之前我总是认证不成功(登录503错误),我想可能是模块之间有一些影响,所以我把其他的都注释掉,只留下这两个即可。通常使用的情况下,暂无其他问题,若有的话欢迎指出问题,谢谢。

五、创建虚拟用户

touch  /etc/vsftpd/user_conf/{user1,user2}

cat /etc/vsftpd/user_conf/user1

anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes
local_root=/var/ftp/user1

cat /etc/vsftpd/user_conf/user2

anon_world_readable_only=no       # 允许匿名用户浏览器整个服务器的文件系统
write_enable=no                             # 允许在文件系统写入权限
anon_mkdir_write_enable=yes              #  允许创建文件夹
anon_other_write_enable=NO                #   允许用户改名和删除文件的权限
anon_upload_enable=yes                            # 允许用户上传文件
local_root=/var/ftp/user2

mkdir  /var/ftp/{user1,user2} 创建虚拟用户的根目录
六、创建一个用户要与vsftp.conf中的guest_username=ftpuser 所对应上

useradd  -g ftp -s /sbin/nologin ftpuser

分配权限

cd /var/ftp/

chown -R ftpuser *

[root@server1 ftp]# ll -dh /var/ftp/user1/
drwxr-xr-x. 2 ftpuser ftpuser 6 Oct 31 02:38 /var/ftp/user1/

转载于:https://blog.51cto.com/silencezone/1708341

centos7 vsftpd 虚拟用户 pam模块认证相关推荐

  1. FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

    基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7R ...

  2. Linux之Vsftpd虚拟用户、扩展应用tcp_wrapper实验总结

    Linux之Vsftpd虚拟用户实验总结 一.vsftpd简介 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX ...

  3. FTP服务(3)实现基于文件验证的vsftpd虚拟用户

    1.虚拟用户 所有虚拟用户会统一映射为一个指定的系统帐号: 访问共享位置,即为此系统帐号的家目录各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定虚拟用户 帐号的存储方式: 文件:编 ...

  4. vsftpd虚拟用户和本地用户不能共存的解决方法

    在配置vsftpd的过程中,听信了网上的谗言,把vsftpd配了一遍,发现配完,虚拟用户和本地用户不能共存,即虚拟用户可以登录ftp,但是本地用 户不能登录的ftp.折腾了很久,包括上网找过很多内容都 ...

  5. 两种方式建立Vsftpd虚拟用户

    http://blog.51cto.com/yuanbin/129071 两种方式建立Vsftpd虚拟用户 我们登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使 ...

  6. linux搭建vsftpd虚拟用户访问

    配置vsftpd服务 FTP服务器默认匿名可以访问. 1.搭建yum仓库   [root@accp~]# vim /etc/yum.repos.d/dvd.repo   [server]   name ...

  7. linux之vsftpd虚拟用户搭建

    vsftpd虚拟用户的配置过程 系统版本:Redhat 4.0 1.安装软件包          #rpm -ivh /mnt/RedHat/RPMS/vsftpd...... 2.建立虚拟用户口令库 ...

  8. vsftpd虚拟用户帐号

    vsftpd虚拟用户帐号的设置步骤:   1.建立虚拟用户口令库文件   2.生成vsftpd的认证文件   3.建立虚拟用户所需的PAM配置文件   4.建立虚拟用户所要访问的目录并设置相应权限   ...

  9. linux下配置vsftpd虚拟用户为登录用户

    1.安装vsftpd 安装依赖包: yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl 新建vsftpd系统用户: #建立Vsft ...

最新文章

  1. 024_JDK的equals方法
  2. linux deepin tar安装jdk8
  3. OpenStack三种类型的NAT转换
  4. JAVA就业面试题之单例模式
  5. Kafka SCRAM和PLAIN实战
  6. xstream不映射字段_这本XStream学习手册,真的不来看看?
  7. SQL里变量的声明以及常用函数举例
  8. cgi web页面传入命令
  9. matlab中使用libsvm工具箱训练的svm分类器model保存
  10. 【Axure图标库】单线形图标元件库 细线矢量图标1000+
  11. 思维导图学习---数据库相关基础思维导图(2)
  12. 从键盘输入10个整数,求其平均值
  13. 基于DCT的信息隐藏
  14. 这一周CSDN人都看了些什么?(5.14-5.20)
  15. nginx单点故障怎么破?
  16. 游戏数据后台,kafka代替rsync同步日志数据
  17. yara规则--编写
  18. f7功能键使用计算机,【ThinkPad】F1-F12功能键最全使用指南
  19. python读取excel(读写处理xls或xlsx)
  20. 前端VUE面试题总结

热门文章

  1. java main函数_Java经典面试题集锦
  2. android fragment 抽屉,如何从Fragment Android中禁用或隐藏抽屉布局
  3. 磁盘格式 mac android,MacDroid for mac(安卓手机数据传输助手)
  4. python 通用数据库类型_Python开发基础之Python常用的数据类型
  5. groupadd r mysql_MySQL三种安装方式大揭秘
  6. 机器人改变生活利弊英语作文_左手建筑右手餐饮,机器人如何改变大众生活? 圆梦人感言...
  7. 不小心点了计算机一键还原怎么操作,电脑一键还原在哪里?电脑怎样一键还原系统...
  8. java rails orm_php 模拟 rails 中的 ActionRecord 的 ORM (一)
  9. std::list 循环删除指针_数据结构_006_线性表_循环链表
  10. docx文档怎么排列图片_PDF怎么转Word?这几款软件满足你的要求