当我们的用户量越来越大时,继续创建更多的系统用户是不明智的,这时就需要为vsftpd创建虚拟账户,但vsftpd虚拟账户的数据库要保存在Berkeley DB格式的数据文件中,所以需要安装db4-utils工具来创建这样的数据库文件

(1)安装vsftpd服务

yum install vsftpd
service vsftpd restart
chkconfig vsftpd on

(2)创建虚拟用户数据库

首先需要创建明文文件,明文文件奇数行为用户名,偶数行为密码。使用db_load工具将其转换为数据库文件,db_load工具需要通过安装db4—utils软件获得。最后通过修改文件权限以增强资料的安全性

yum -y install db4-utils
vi /etc/vsftpd/vlogin

在vlogin文件中写入用户名和密码

tomcat
123456
jerry
654321

生成虚拟数据库

db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db
chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

(3)创建PAM文件,设置虚拟账号验证

Linux一般通过PAM文件设置账号的验证机制,然后通过创建PAM文件,使用新的数据文件进行登录验证,PAM文件中的db选项于指定并验证账户和密码的数据库文件

vi /etc/pam.d/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

(4)设置虚拟账户共享目录

因为所有的虚拟账户需要映射到一个真实的系统账户,所以系统需要添加一个系统账户并设置家目录

useradd -s /sbin/nologin -d /home/ftp virtual

(5)修改主配置文件

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名登录,默认开启
local_enable=YES #启动本机账户ftp
write_enable=YES #允许写操作
anon_upload_enable=YES #允许匿名用户上传,默认禁止
anon_mkdir_write_enable=NO #禁止匿名用户创建目录
anon_other_write_enable=NO #禁止匿名用户进行其他写操作
guest_enable=YES #开启,则所用非匿名用户登录都指定到guest_username的指定账号
guest_username=virtual #设置来宾账号,即我们刚刚创建的账号
listen_port=21
pasv_enable=YES #启动被动模式连接
pasv_min_port=30000
pasv_max_port=30999
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.pam #指定pam文件
user_sub_token=$USER

(5)为每个用户设置独立的共享路径

通过在主配置文件中使用user_config_dir选项,设置一个基于账户的配置目录,在该目录下可创建若干个与账户名称相同的文件,并在文件中为此账户设置独立的配置选项,包括权限与共享路径等设置,本文仅以tomcat为列,如果你还需要对权限,限速,并发量等选项进行设置,可以参考匿名账户的设置账户的设置选项添加至账户独立的配置文件中

mkdir /etc/vsftpd_user_conf
mkdir -p /home/ftp/tomcat
vi /etc/vsftpd_user_conf/tomcat local_root=/home/ftp/$USER

(6)将21号端口写进防火墙

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #添加这一行

(7)重启服务

service iptables restart
service vsftpd restart

常见问题

1、530 Login incorrect

pam验证失败,可能是因为你使用的64位操作系统,而pam文件中库文件的调用却使用的是/lib/security/pam_userdb.so。或者是用户名或密码输入错误,也有可能是vsftpd主配置文件中pam_service_name设置的pam文件名称与/etc/pam.d中创建的pam文件不一致

2、500 oops:cannot change directory:/home/ftp/$USER

setsebool -P ftp_home_dir 1

3、上传文件失败

chmod 777 /home/ftp/tomcat

注:实习生做运维。这是为了以后不用到处找文章才写的,不完善或错误请指出!!!!!!!!!!

centos6.5安装vsftp服务并配置虚拟账户ftp的更多相关文章

  1. CentOS6.X安装vsftpd服务

    #-----------------CentOS6.X安装VSFTPD服务 #! /bin/sh #1.关闭selinux setenforce 0 sed -i 's/enforcing/disab ...

  2. (十四)Centos之安装vsftp服务

    一.为什么要安装vsftp服务 我们需要向centos操作系统的服务器上上传文件或者下载文件,这时候,ftp有必要安装下,我们选择主流的vsftp 二.安装 第一步:安装vsftp yum insta ...

  3. Linux(RHEL7)下安装vsftp服务

    1.安装vsftp(没有配置yum源的先配置yum源) yum install -y vsftpd 2.启动ftp服务 systemctl start vsftpd.service 3.打开防火墙 f ...

  4. 在 CentOS 上安装 vsftp 服务

    在 CentOS 上安装 vsftp 服务 1.查看当前 CentOS 服务器是否已安装了 vsftpd 服务: rpm -q vsftpd 如果打印如下类似的信息则表明已安装 vsftpd 服务: ...

  5. windows IIS安装php服务及配置

    windows IIS安装php服务及配置 启动IIS服务 打开 "控制面板" => "程序" => "启用或关闭Window功能&quo ...

  6. CentOS6.3下安装VSFTP服务

    CentOS下安装FTP服务器: 第一步,检查服务器端是否已经安装FTP:[root@localhost centos]# rpm -q vsftpd 如果出现的是:[root@localhost c ...

  7. CentOS6.9安装httpd并正确配置静态IP地址

    题目要求 在vmware中安装一台虚拟机,操作系统为centos6.9 ip地址为 192.168.56.11 要求: 1.xshell能够连接上此虚拟机 2.此虚拟机必须可以上网 3.使用yum安装 ...

  8. Centos安装vsftp服务

    1.安装vsftp yum install vsftpd 2.开启vsftp服务,设置开机自启 service vsftpd restart chkconfig vsftpd on 停止vsftpd: ...

  9. linux安装vsftp服务

    如果管理一个网站,需要经常上传下载一些文件,通过scp传输吗?当然不是,太麻烦了,而且首先你需要本机是linux的系统,这时我们需要一个工具,叫ftp. ftp是文件传输协议,通过它可以很方便上传下载 ...

随机推荐

  1. 汇编学习笔记(14)BIOS对键盘输入的处理

    字符的处理 键盘输入的字符一般由int9中断例程从60h端口中读取,并存放在键盘缓冲区中,由int16h例程从键盘缓冲区中读取相应字符,CPU对键盘输入a.shift_a的处理过程如下 1.一开始没有 ...

  2. Windows下安装和配置Maven的方法及注意事项

    首先,从http://maven.apache.org/download.cgi网站上下载适用于当前操作系统操作格式的最新版本的maven安装包.如:apache-maven-3.2.5-bin.zi ...

  3. Java---基于TCP协议的相互即时通讯小程序

    这是几年前,新浪的一个面试题~要求是3天之内实现~ 通过TCP 协议,建立一个服务器端. 通过配置服务器端的IP和端口: 客户端之间就可以相互通讯~ 上线了全部在线用户会收到你上线的通知. 下线了全部 ...

  4. ubuntu制作usb启动盘

    准备: u盘 iso镜像文件--ubuntu-12.04.2-desktop-amd64.iso 烧盘软件--unetbootin-linux-583 步骤: 格式化u盘 查看u盘信息 #mount/ ...

  5. poj 1106 Transmitters (枚举+叉积运用)

    题目链接:http://poj.org/problem?id=1106 算法思路:由于圆心和半径都确定,又是180度,这里枚举过一点的直径,求出这个直径的一个在圆上的端点,就可以用叉积的大于,等于,小 ...

  6. MongoDB基础知识 01

    MongoDB基础知识  1. 文档  文档是MongoDB中的数据的基本单元,类似于关系型数据库管理系统的行. 文档是键值对的一个有序集.通常包含一个或者多个键值对. 例如: {”greeting& ...

  7. 【Android - 框架】之XBanner的使用

    一.XBanner简介 XBanner是一个非常优秀的无限自动轮播框架,也是一个控件.这里是XBanner的GitHub地址 XBanner的主要功能如下: 根据传入的数据条数自动调整广告页数 当图片 ...

  8. 实现html转Xml

    最近在做一些网页信息采集的工作,说通俗点就是爬虫工具,要监控页面中某一部分内容是否发生变化.起初考虑用正则表达式去匹配网页源码,经过咨询有经验人士,推荐使用xpath去获取页面内容能获得更好的效率.但 ...

  9. [iOS开发] 使用第三方字体不生效

    iOS中使用第三方字体并不复杂,通常只需要如下三个步骤: 1. 将第三方字体文件添加到工程(Project)中: 2. 在info.plist中添加一个新的键"Fonts provided ...

  10. js时间字符串转Date对象

    var DATE_REGEXP = new RegExp("(\\d{4})-(\\d{2})-(\\d{2})([T\\s](\\d{2}):(\\d{2}):(\\d{2})(\\.(\ ...