码迷,mamicode.com
首页 > 其他好文 > 详细

vsFTPd限制虚不同的拟用户使用不同目录

时间:2016-08-19 11:20:19      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

vsftpd的不同虚拟用户分配不同权限的配置
一.系统环境:debian sarge
二.所需软件:vsftpd libdb3-util
三.运行模式:standlone(独立模式)
四.用户权限:以两个用户为例
tom:浏览,下载,建立新目录,上传
boy:浏览,下载,建立新目录,上传,修改,删除
五.参考文档:

/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/
/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS_2/
六.配置步骤:

1.生成虚拟用户口令库文件
2.配置生成vsftpd的认证文件
3.建立虚拟用户所要访问的目录并设置相应权限
4.建立每个虚拟用户的配置文件
5.建立并修改/etc/vsftpd.conf
七.详细操作方法如下:
1.先建立一个包含虚拟用户名及其口令的文本文件,然后在此基础上生成虚拟用户口令库文件
cat ~/logins.txt
tom
111
boy
222
//此文本文件的格式为:奇数行为用户名,偶数行为口令;
//即tom的口令为111, boy的口令为222

2.生成口令库文件,并更改口令库权限(注意:debian中使用db3_load,而不是用db_load)
db3_load -T -t hash -f  ~/logins.txt   /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db

3.编辑生成虚拟用户所需的pam配置文件,方法有两种内容一样,配置目录: /etc/pam.d/
A.可以把/usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam复制到/etc/pam.d/下面;
cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam  /etc/pam.d/vsftpd.pam
B.也可以直接在/etc/pam.d/vsftpd中加入下面两行,把其它行都用#注释掉
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

4.建立虚拟用户访问目录并设置virtual用户访问的权限
groupadd virtual
useradd -d  /home/ftpsite -m virtual -g virtual
chmod 700 /home/ftpsite/
ls -ld /home/ftpsite/ 查看一下权限是否如下所示:
drwx------ 3 virtual virtual /home/ftpsite/

5.对不同的虚拟用户建立相应权限的配置
A.建立存放虚拟用户配置文件的目录
mkdir /etc/vsftpd_user_conf
B.在此目录下建立tom的配置文件,并设置成如下内容:
cat /etc/vsftpd_user_conf/tom
anon_world_readable_only=NO //打开浏览权限
write_enable=YES //打开写权限
anon_upload_enable=YES //上传权限
anon_mkdir_write_enable=YES //建立目录权限
C.在tom配置文件的基础上建立boy的配置文件,增加更改和删除权限
cp /etc/vsftpd_user_conf/tom /etc/vsftpd_user_conf/boy
vi /etc/vsftpd_user_conf/boy  //增加下面这行
anon_other_write_enable=YES //更改和删除权限
(注意:一定要打开写权限,上传,更改和删除的设置才起作用)

6.建立vsftpd.conf文件,使之内容如下:
cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /etc/vsftpd.conf
vi /etc/vsftpd.conf
listen=YES
#listen_port=10021 //你可以在这里指定监听的端口,也可以用默认的
connect_from_port_20=YES
ftpd_banner=Welcome to virtual FTP service.

anonymous_enable=NO //不许匿名登录
local_enable=YES //允许本地用户登录
write_enable=NO
anon_upload_enable=NO //这里先把虚拟用户的权限设置成最低的
anon_mkdir_write_enable=NO //然后针对不同用户设置相应的权限
anon_other_write_enable=NO
chroot_local_user=YES

guest_enable=YES //允许虚拟用户登录
guest_username=virtual
pasv_min_port=30000
pasv_max_port=30999

pam_service_name=vsftpd //这里的pam根据步骤3,设成相应的
user_config_dir=/etc/vsftpd_user_conf //指定用户配置文件的目录
xferlog_enable=YES //设置日志文件
xferlog_file=/var/log/vsftpd.log
//也可以根据自己的需要,再增加其他的配置选项

7.运行,测试一下FTP服务器
vsftpd &
按照以上方法可以为虚拟用户设置不同的权限,但是每个用户登陆后都处在同一个目录,并不适合实际应用.

下面简要说说为不同的虚拟用户设置不同的家目录.

虚拟用户的个人目录

  大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/ftpsite,即都是guest_username用户的自家目录。下面,介绍如何为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:
  user_config_dir=/etc/vsftpd/vsftpd_user_conf
  然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:
  [root@hpe45 root]# cd /etc/vsftpd/vsftpd_user_conf
  [root@hpe45 vsftpd_user_conf]# touch xiaowang
  以上的操作为虚拟用户xiaowang建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/xiaowang。接下来,在xiaowang的个人配置文件中将xiaowang的自家目录修改为/home/xiaowang,配置选项为:
  local_root=/home/xiaowang
  然后,新建xiaowang目录,并将权限设为virtual:
  [root@hpe45 vsftpd_user_conf]# mkdir /home/xiaowang
  [root@hpe45 vsftpd_user_conf]# chown virtual.virtual ./xiaowang
  [root@hpe45 vsftpd_user_conf]# chmod 600 /home/xiaowang
  经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。
  从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于virtual的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。

 

鼎峰胡佳雄
QQ.2881064155
Skype.live:2881064155

vsFTPd限制虚不同的拟用户使用不同目录

标签:

原文地址:http://www.cnblogs.com/supper-hjx/p/5786766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!