使用linux FTP虚拟用户搭建FTP服务器

    最近接触一个项目,客户需要搭建一台FTP服务器。具体要求是:系统采用red hat 6.4 64位操作系统;创建20个ftp用户,这些用户拥有自己独立的工作目录,并且有上传、下载、删除等权限;创建一个ftp管理用户,这个用户拥有管理以上20个ftp用户目录的权限。

    仔细一看要求单单使用本地用户设置属组和文件目录权限控制的方法很难实现以上要求,于是想到使用ftp虚拟用户,而且ftp虚拟用户安全性高,不能登录系统,只能访问ftp服务器。

    下面开始在自己的虚拟机环境中根据客户的要求搭建ftp服务器。

    实验环境:

            操作系统:red hat 5.8 64为;

            安装软件:vsftpd,db4-utils

  1. 建立虚拟用户口令库文件

    进入/etc/vsftpd目录,创建vuser_list文件,添加需要的虚拟用户和密码,添加格式是一行用户名,紧跟一行密码,文件中不要有空行,如下,

vi vuser_list
admin
admin
huaxia
123456
chinapay
123456
baofu
123456
albb
123456

2. 生产虚拟用户的口令认证文件

   使用db_load命令生成口令认证文件,该文件需放在/etc/vsftpd/目录,注意安装db4-utils软件才能使用db_load命令,

 db_load -T -t hash -f vuser_list /etc/vsftpd/vsftpd_login.db

    更改认证文件vsftpd_login.db的权限,

chmod 600 /etc/vsftpd/vsftpd_login.db

3. 更改vsftpd的pam配置文件,使其对客户端进行验证时使用生成的虚拟用户认证文件

    编辑/etc/pam.d/vsftpd文件,批注所有内容后,添加:

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

4. 增加一个系统用户virtuser,用来对应所有的虚拟用户登陆

    所有的ftp虚拟用户对应到这个虚拟用户,虚拟用户使用virtuser用户来登陆ftp服务器,

useradd -d /var/ftp/virtuser -s /sbin/nologin virtuser

5. 设置vsftpd主配置文件vsftpd.conf

    修改前对vsftpd.conf配置文件进行备份,

    在vsftpd.conf配置文件中修改或添加一下内容

vi vsftpd.conf 

anonymous_enable=NO   禁用匿名用户登录
local_enable=YES
pam_service_name=vsftpd  配置vsftpd使用的PAM模块为vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf   设置虚拟账户配置文件的主目录

6. 创建虚拟用户的配置文件和工作目录

   1>.创建虚拟用户的配置文件 

    只有创建的虚拟用户的配置文件才能使用ftp虚拟用户,

    在/etc/vsftpd/目录下创建vsftpd_user_conf目录,

mkdir vsftpd_user_conf

    在vsftpd_user_conf目录下分别创建和虚拟用户口令库文件vuser_list中同名的用户文件,

touch admin
touch huaxia
touch chinapay
touch baofu
touch albb

分别编辑虚拟用户配置文件,添加配置信息,管理用户的家目录放在/var/ftp/virtuser/目录下,其他虚拟用户的家目录放在/var/ftp/virtuser/admin目录下,实现admin用户管理其他虚拟用户的目的,

guest_enable=YES
local_root=/var/ftp/virtuser/admin   指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目                                     录,虚拟用户登录后的主目录。 
guest_username=virtuser
anon_world_readable_only=NO               浏览FTP目录和下载
anon_upload_enable=YES                    允许上传
anon_mkdir_write_enable=YES               建立和删除目录
anon_other_write_enable=YES               改名和删除文件

2>.创建虚拟用户的工作目录

    

mkdir -p /var/ftp/virtuser/admin                
mkdir -p /var/ftp/virtuser/admin/albb           
mkdir -p /var/ftp/virtuser/admin/baofu          
mkdir -p /var/ftp/virtuser/admin/chinapay       
mkdir -p /var/ftp/virtuser/admin/huaxia         
chown -R virtuser:virtuser /var/ftp/virtuser/

7. 重新启动vsftpd服务,使所有配置文件的设置生效

service vsftpd restart

8.测试是否符合要求


1>.admin用户登录

技术分享

可以看到其他虚拟用户的目录,

技术分享

2>.其他虚拟用户登录

技术分享


技术分享

本文出自 “xiaozhizh” 博客,请务必保留此出处http://xiaozhizhi.blog.51cto.com/9698292/1612406

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。