vsftp高级应用配置虚拟用户
vsftp高级应用:配置虚拟用户
有以下案例:某技术论坛需要做一个给用户投稿用的FTP服务器,其投稿专用帐号只允许用户上传,不允许用户下载,下载专用帐号则只允许下载不允许上传.后一个功能使用本地用户即可实现,但是前一个功能呢?仅仅使用本地用户是无法实现的.下面我们来用虚拟用户实现投稿账号的功能:
新建一个所有虚拟用户映射到本地的一个本地用户"vuser",为什么要建立这样一个账户呢?因为当你用虚拟用户访问vsftp时,虚拟用户在系统上是不存在的,此时vsftp应该以什么权限去访问linux系统呢?所以这里需要一个所有虚拟用户共用的一个本地用户:"vuser".
[root@LidadeFedora ~]# useradd vuser -s /sbin/nologin
[root@LidadeFedora ~]# passwd vuser
新建一个存储虚拟用户用户名密码的数据库,路径可自设,这里用
/etc/vsftpd/vuser
[root@LidadeFedora ~]# cd /etc/vsftpd/
[root@LidadeFedora vsftpd]# touch vuser
编辑新建的vuser文件,添加两个账户 vftp1,vftp2.vftp1用作上传专用帐号,vftp2用作下载专用账号,密码都为"123456":
格式如下:
user_id
password
把新建的文本文件vuser转换为db文件, 这里需要安装一个包db4_utils,这个包可以在Linux安装光盘中找到
安装好包后,使用命令db_load转换文本文件为db文件:
[root@LidadeFedora RPMS]# cd /etc/vsftpd/
[root@LidadeFedora vsftpd]# db_load -T -t hash -f vuser vuser.db
打开主配置文件/etc /vsftpd/vsftpd.conf,开启vsftp虚拟用户功能需要启用四个选项:
guest_enable=yes
guest_username=vuser
pam_service_name=vvsftpd
local_enable=yes
local_enable=yes 默认已存在,只需要添加第1-2条,修改第3条:
进入目录/etc/pam.d,新建空文件 vvsftpd,内容为:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
vi /etc/vsftpd.conf在此文件中插入下面的配置语句添加选项
user_config_dir=/etc/vsftpd/userconfig(指定不同虚拟用户配置文件的存放路径),这里只需要在该目录中新建两个配置文件"vftp1","vftp2":
mkdir /etc/vsftpd/userconfig
touch vftp1 vftp2
账号vftp1用作上传专用账号,权限为只能上传不能下载不能删除不能新建文
件夹,根目录为/var/ftp/share.由于虚拟用户使用的是匿名用户的权限选项,所以虚拟用户配置起来是非常灵活的.这里还要注意一下选项
"anon_world_readable_only=no”这个选项的大致意思是开放匿名用户(虚拟用户)的浏览权限.
vi /etc/vsftpd/userconf/upload,添加下列行
local_root=/var/ftp/share
download_enable=no
anon_upload_enable=yes
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no
帐户"vftp2"用作下载账号,只能下载不能上传不能删除不能新建文件夹,根目录为/var/ftp/share
local_root=/var/ftp/share
download_enable=yes
anon_upload_enable=no
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no
下面来建立文件夹/var/ftp/share,这个文件夹的所有者应该为"vuser",因为虚拟用户 vftp1,vftp2映射的本地用户是vuser,如果vuser对该文件夹没有权限,那么不论配置文件里的权限开多大也无济于事.
mkdir /var/ftp/share
chown vuser: vuser /var/ftp/share
打开客户端的flashfxp,修改用户名为 vftp1连接到vsftp服务器
使用子配置文件的好处之一:你甚至都不用重启vsftpd服务就可以直接用客户端连接上去,新的权限会即时生效,下面来测试一下vftp1的上传和下载、删除等权限是否符合我们的要求:
下面来看下载测试结果:
显然,这正是我们希望看到的.用户无法下载自己刚刚上传的文件.删除、新建文件夹等权限以及vftp2用户的权限请自行测试,