1. 安装认证所需包

[root@localhost]#yum install pam*
[root@localhost]#yum install db4*

首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文件)。

2. 安装vsftpd

[root@localhost]#yum install vsftpd

3. 设置vsftpd开机启动:

[root@localhost]#chkconfig vsftpd on

通过chkconfig --list 查看启动项

4. 配置vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022 xferlog_enable=YES
xferlog_file=/etc/vsftpd/vsftpd.log
xferlog_std_format=YES connect_from_port_20=YES
idle_session_timeout=600
listen=YES pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/virtualuser_conf
*重要参数说明:
anonymous_enable=NO 不允许匿名访问
local_enable=YES 本地用户可以访问,如果设置成NO的话,ftp这个系统本地用户没法进行访问了,所有的ftp客户端当然也没法进行上传下载了。
write_enable=YES #可写(可上传) xferlog_enable=YES
xferlog_file=/etc/vsftpd/vsftpd.log
xferlog_std_format=YES
这3项由于设置log日志,记得在/etc/vsftpd/下新建一个vsftpd.log文件。 guest_enable=YES #启用虚拟用户
guest_username=ftp #虚拟用户借用的系统本地用户名
user_config_dir=/etc/vsftpd/virtualuser_conf #虚拟用户的配置文件路径,所以别忘了在/etc/vsftpd/目录下新建一个virtualuser_conf文件夹

5. 配置虚拟用户

比如我要添加一个叫xmzncc用户,ftp客户端就使用该用户名(密码后面设置)进行上传下载,在/etc/vsftpd/virtualuser_conf新建一个名叫xmzncc的文件:touch xmzncc 。文件里面的内容为:

local_root=/var/www/html
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
*参数说明:
local_root=/home/ftpuser #该虚拟用户上传下载的根目录
write_enable=YES #可写(可上传)
anon_umask=022 #掩码  

  

接下来在/etc/vsftpd/目录新建一个记录所有客户端用户(虚拟用户)的用户名密码的文本文档:

touch virtualuser_passwd.txt

里面的内容为:

xmzncc
passwd1
xmzncc2
passwd2

奇数行是用户名,偶数行是密码,这里建了两个虚拟用户,但是zhang1这个用户没有给设置。

接着,生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/virtualuser_passwd.txt /etc/vsftpd/virtualuser_passwd.db

随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句
再增加以下两句

auth required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd
account required pam_userdb.so db=/etc/vsftpd/virtualuser_passwd

6. 设置服务器上的目录权限
因为这里设置的上传下载的根目录为/var/www/html,所以这个文件夹的权限很重要,开始新建的时候它是root:root,属于root用户,属于root组,后来改成了root:ftp,即改成了ftp组,因为客户端进行上传下载是借助服务器上的ftp用户,ftp用户是属于ftp组的。这样能进行访问下载,但是下载有问题,各种改权限,最后直接将这个目录改成ftp:ftp所有问题都没有了,而且ftp用户对该目录具有rwx(可读可写可执行)的权限:

[root@localhost]#chown -R root:ftp /home/ftpuser
[root@localhost]#chmod 077 /home/ftpuser

7. 测试

Centos下安装FTP并进行虚拟用户访问方式配置的更多相关文章

  1. centos7下安装vsftpd与PAM虚拟用户

    Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 设置开机启动 chkconfig vsftpd on 创建一个保存 ...

  2. Centos下安装最新版Mono并为windwos服务配置开机启动项

    一:安装Mono,此步骤参照官网 1:配置Yum仓库 #Centos 7yum install yum-utils rpm --import "http://keyserver.ubuntu ...

  3. 阿里云Centos下安装nginx之后外网无法访问

    centos 7.4 nginx1-14.0编译安装 curl 127.0.0.1 可以请求到 index.html curl local 可以请求到 index.html http://ip/ 无法 ...

  4. CentOS下安装C/C++开发工具包的最佳方式

    如果你使用的是 Fedora, Red Hat, CentOS, 或者 Scientific Linux 系统,使用下面的命令安装GNU的C/C++开发包和编译器. # yum groupinstal ...

  5. 32位centos下安装jdk1.7报Permission denied处理方式

    本文转载自:http://blog.csdn.net/snowwhitewolf/article/details/50287877 环境:centos5.8 32位jdk-7u71-Linux-i58 ...

  6. CentOS下安装完php外网无法访问的问题

    1. cd /etc/selinux/ vim config SELINUX=disabled 2.通过界面关闭防火墙

  7. CentOS下安装Apache

    CentOS下安装Apache,首先在用户状态下使用su root命令切换到超级管理员界面,让后开启终端,进行apache的安装过程. [root@localhost centos]# yum ins ...

  8. Linux Centos 通过虚拟用户访问FTP的配置

    Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目 ...

  9. Linux 下 FTP虚拟用户的使用配置

    Linux下FTP虚拟用户的使用配置 Linux的FTP服务支持3种用户: 1.匿名帐户 2.本地帐户 3.虚拟用户 为什么要使用虚拟用户: 匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用 ...

随机推荐

  1. JavaScript 按回车键提交搜索表单 easyui ajax方式

    <!-- 搜索框 --> <form id="bUserSearchForm" style="padding:8px;" onkeydown= ...

  2. 【Uva 12558】 Egyptian Fractions (HARD version) (迭代加深搜,IDA*)

    IDA* 就是iterative deepening(迭代深搜)+A*(启发式搜索) 启发式搜索就是设计估价函数进行的搜索(可以减很多枝哦~) 这题... 理论上可以回溯,但是解答树非常恐怖,深度没有 ...

  3. QT中的字符串处理函数

    Fn 1 : arg 这个函数的具体声明不写了,它有20个重载,典型的示例代码如下: 1: #include <QtCore/QCoreApplication> 2: #include & ...

  4. windows平台下VLC2.0.5编译

    windows平台下VLC2.0.5编译说明 时隔一年多,又要搞流媒体了,不过这次是要做流媒体服务器. 暂时决定使用vlc+ffmpeg+live555,虽然听有些前辈说这个组合的性能较差,只能作为学 ...

  5. eight - zoj 1217 poj 1077

    学习了多位大牛的方法,看看到底能把时耗降到多少? A* // zojfulltest: 30000ms # include <stdio.h> # include <ctype.h& ...

  6. 【转】解决wine中文乱码的问题

    原文网址:http://blog.chinaunix.net/uid-24993439-id-2979620.html 新装的wine中文全是乱码,需要修改一下几个配置文件,找到一篇比较详细的配置说明 ...

  7. ruby编程语言-学习笔记1

    安装完 ruby ri irb ruby-devel 1. 先来个简单的,写个helloworld  给新手们 (terminal中,# 代表root权限,$ 代表用户权限, 前面的就不写了.) # ...

  8. Mealy和moore型状态机

    Moore型状态机:下一状态只由当前状态决定,即次态=f(现状,输入),输出=f(现状): Mealy型状态机:下一状态不但与当前状态有关,还与当前输入值有关,即次态=f(现状,输入),输出=f(现状 ...

  9. curl检查远程文件是否存在

    size_t processdata(void *buffer, size_t size, size_t nmemb, void *user_p) { //写一个空的写函数 return nmemb; ...

  10. Eclipse 卸载插件

    直奔主题,不罗嗦! 1.help 2.about eclipse 3. 点击Installation Details 4.选中你安装的插件点击Uninstall... 5.从新启动,OK.