RHEL7 学习笔记:vsftpd文件共享(3)

4.3.5 vsftpd应用案例

案例1:虚拟账户FTP,满足大量账户的访问需求

vsftpd虚拟账户的数据需要保存在Berkeley DB格式的数据文件中,所以需要安装db4_utils工具来创建这样的数据文件,具体步骤如下。

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

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

[root@instructor ~]# yum -y install db4-utils

[root@instructor ~]# vim /etc/vsftpd/vlogin

tomcat

123456

jerry

123456

[root@instructor ~]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db

[root@instructor ~]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

(2)创建PAM文件,设置基于虚拟账户验证

Linux一般通过PAM文件设置账户的验证机制,然后通过创建新的PAM文件,使用新的数据文件进行登录验证,PAM文件中的db选项于指定并验证账户和密码的数据库文件,数据库文件无需.db的名称后缀。注意,因为本环境使用的是CentOS6.4 64位操作系统,所以验证模块调用的是lib64目录下文件。

[root@instructor ~]# vim /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

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

因为所有的虚拟账户最终都需要映射到一个真实的系统用户,所以这里需要添加一个系统账户并设置家目录,为了进行测试,这里复制一份测试文件。

[root@instructor ~]# useradd -s /sbin/nologin -d /home/ftp virtual

[root@instructor ~]# cp /etc/RedHat-release /home/ftp/

(4)修改主配置文件

与配置本地账户FTP一样,我们需要修改vsftpd的主配置文件,使用guest_enable选项开启虚拟账户功能,所有的虚拟账户都将被映射为guest_username指定的一个系统真实账户。如果需要对虚拟账户进行权限设置,使用与匿名账户一样的设置项即可,如anon_mkdir_write_enable=NO,就可以控制虚拟账户无法创建目录。

[root@instructor ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=YES

chroot_local_user=YES

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.pam

user_config_dir=/etc/vsftpd_user_conf

user_sub_token=$USER

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

通过在主配置文件中使用user_config_dir选项,设置一个基于账户的配置目录,在该目录下,可以创建若干个与账户名称同名的文件,并在文件中为此账户设置独立的配置选项,包括权限与共享路径等设置,这样就可以为每个账户做单独的权限设置等操作。本例仅以tomcat为例,其他账户参考模板文件即可。当然,如果你还需要对权限、限速、并发量等选项进行设置,可以参考匿名账户的设置选项添加至账户独立的配置文件中。

[root@instructor ~]# mkdir /etc/vsftpd_user_conf

[root@instructor ~]# mkdir /home/ftp/tomcat

[root@instructor ~]# vim /etc/vsftpd_user_conf/tomcat

local_root=/home/ftp/$USER

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17403.html