RHEL6.3配置FTP服务器(3) 虚拟用户下载和上传

简介:

除了匿名用户和本地用户之外,我们还可以设置虚拟用户来访问FTP。所谓虚拟用户是指存放于独立数据库文件中的FTP用户账号,可以将他们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务器的安全性。


(1)创建虚拟用户数据库文件
vsftpd服务的虚拟用户数据库是使用Berkeley DB格式的数据库文件,建立数据库文件需要用到db_load命令工具,db_load工具是由db4-utils软件包提供的,所以首先我们需要确认系统中已经安装好了db4-utils组件。

然后我们先建立一个文本格式的用户名/密码列表文件,用于存放虚拟用户账号。文件名可以随意,文件一般是保存在/etc/vsftpd目录中。
# vim /etc/vsftpd/logins.txt

文件中的奇数行表示用户名,偶数行为上一行用户所对用的密码。如上图就表示创建了2个虚拟用户:harry和natasha,密码都是123.
有了文本格式的用户名/密码列表文件以后,还要以此文件为数据源通过db_load工具创建出Berkeley DB格式的数据库文件。

上图中所执行的db_load命令是一种固定用法,其中的“-T”选项表示允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件,“-t hash”选项指定读取数据文件的基本方法,“-f”选项用于指定数据的源文件。
最后为了提高虚拟用户账号的安全性,最好将这两个存放虚拟用户账号的文件的权限都设为600,即只有root用户具有读取和写入权限。


(2)创建虚拟用户的映射账号
vsftpd服务对虚拟用户其实是采用了映射的控制方式,把所有的虚拟用户账号都对应到了同一个系统用户账号上,并将这个系统用户的主目录作为所有虚拟用户登录后共用的FTP根目录。
所以我们还必须要创建一个系统用户账号,当然这个用户是无需设置密码并且不允许登录系统。

在useradd命令中,利用-d选项指定了用户的主目录,利用-s选项禁止用户登录。然后再修改目录权限,使得其他用户可以访问。


 

(3)创建PAM认证文件
对虚拟用户的身份认证是通过PAM机制来实现的,PAM是Linux系统中的一个独立API(应用程序接口),它提供了各种验证模块以供其它程序调用。当这些程序需要进行用户身份验证的操作时,就可以直接调用PAM的相应模块,而无需由自己来提供验证功能。所以PAM在Linux系统中提供了统一的身份验证机制。
PAM的认证文件都统一存放在/etc/pam.d/目录中,下面我们在这个目录中创建一个FTP虚拟用户的认证文件:
# vim /etc/pam.d/vsftpd.vu

在文件中,通过“db=/etc/vaftpd/logins”参数指定了要使用的虚拟用户数据库文件的位置,注意这里不需要写“.db”的扩展名。


 

(4)修改vsftpd配置,添加虚拟用户支持
在vsftpd.conf配置文件中需要添加相应配置项,以支持虚拟用户。

上图中上半部分的设置项是原有的设置,下半部分(红框部分)的设置项是我们这里所要添加的。

  •  guest_enable=YES ,表示启用虚拟用户映射功能;

  •  guest_username=virtual ,表示指定所映射的系统用户名称;

  •  pam_service_name=vsftpd.vu ,表示指定PAM认证文件。

  •  user_config_dir=/etc/vsftpd/vuser ,表示虚拟用户配置文件的存放目录。关于虚拟用户配置文件将在下面介绍。

另外,其它原有的一些设置项目也必须要正确设置:

  •  local_enable=YES ,由于需要映射本地用户,所以此项必须启用;

  •  anon_umask=022 ,在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头。

  •  write_enable=YES ,表示允许写入。


     

(5)创建虚拟用户配置文件
经过前面的设置之后,将vsftpd服务重启,便可以使用虚拟用户访问FTP了,但此时所有的虚拟用户都只具有下载的权限而无法上传。当然,如果在vsftpd.conf配置文件中添加配置项“aono_upload_enable=YES”和“anon_mkdir_write_enable=YES”,便可以使虚拟用户具备上传权限,但这样一来,所有的虚拟用户又都可以上传了。所以,为了对虚拟用户进行精确控制,实现不同用户拥有不同的权限,我们还需要为每个虚拟用户建立独立的配置文件,在vsftpd.conf配置文件中我们已经指定了虚拟用户配置文件的存放位置/etc/vsftpd/vuser。
下面我们首先创建虚拟用户配置文件存放目录,然后为harry用户创建配置文件,文件名即是用户名:

然后设置允许harry用户上传,设置方法同匿名用户:

然后我们再为natasha也创建一个配置文件,如果natasha只允许下载,那么只需要有一个配置文件即可,文件内容保持空白。
root@localhost ~ ] # touch natasha
重启服务:
# service vsftpd restart
这样虚拟用户便全部设置好了,harry用户具有下载和上传的权限,而natasha只能下载不能上传。 

 最后需要注意的是,如果在vsftpd.conf配置文件中设置了“userlist_enable=YES   userlist_deny=NO”,即只允许userlist列表中的用户访问FTP,那么还需要将virtual用户加入到/etc/vsftpd/user_list列表中去。

 

 

 本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1219381

 



相关文章
|
6月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
688 11
|
6月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
536 10
|
6月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
6月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
673 8
|
6月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
6月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
453 2
|
6月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
2348 1
下一篇
开通oss服务