vsftp高级应用配置虚拟用户

vsftp高级应用配置虚拟用户
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用户的权限请自行测试,

相关主题
相关文档
最新文档