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. [转载]C# HashTable 遍历与排序

    private void Form1_Load(object sender, EventArgs e) { Hashtable ht = new Hashtable(); ht.Add("j ...

  2. Datadog Agent是啥?它消耗什么资源?

    在资本市场不那么喜人的 2015 年融资 9450 万美元的 Datadog,在运维圈刮起了一阵小旋风.作为国外很值得学习的一款平台监控产品,公司人数不足 100 的 Datadog 为什么吸引了投资 ...

  3. StreamCQL

    StreamCQLhttps://github.com/HuaweiBigData/StreamCQL http://blog.csdn.net/viewcode/article/details/90 ...

  4. RPM包制作最简单样例

    相关开发RPM的包要安装 Summary: the Firt RPM of Sky Name: hellow Version: 0.1 Release: Vendor: PA soft(aguncn@ ...

  5. UNICODE并没有提供对诸如Braille, Cherokee, Ethiopic, Khmer, Mongolian, Hmong, Tai Lu, Tai Mau文字的支持

    UNICODE支持欧洲.非洲.中东.亚洲(包括统一标准的东亚象形汉字和韩国象形文字).但是,UNICODE并没有提供对诸如Braille, Cherokee, Ethiopic, Khmer, Mon ...

  6. string.Split函数

    正文 string str = "a---b---c"; string[] array = str.Split(new char[]{'-'}); 分割之后array中的元素为 分 ...

  7. Struts 2.3.1.1 命令执行漏洞

    漏洞版本: Struts 2.3.1.1 漏洞描述: CVE ID:CVE-2011-3923 Struts2的核心使用的是WebWork框架,而WebWork通过XWork来处理用户的请求参数.Xw ...

  8. c# 模拟http post 带cookie

    下面的代码是自动向cnblogs中的小组发帖.........注意小组ID,主题ID,小组类型 首先采用firebug分析到发帖时的post地址以及参数,其中在headers中包含了cookies,把 ...

  9. Android Activity管理类

    public class AppManager { private static Stack<Activity> activityStack; private static AppMana ...

  10. Linux中的syslog 入门学习教程

    syslog是linux系统中默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.程序.守护进程和内核提供了访问系统的日志信息.任何希望生成日志信息的程序都可以向sy ...