热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

ioFTPD的权限控制

来源: 作者: 时间:2007-11-07 Tag: 点击:

  ioFTPD以性能高效著称,引申自FreeBSD下的glFTPd,连目录都很linux,我们姑且认为它是从glFTPd移植过来的吧。最近有一个项目需要用到FTP服务器,而且要求是免费的,于是我就找了它,研究了一个星期,终于有些收获,写出来跟CU的兄弟共享。

   我认为一个基本的ioFTPD最重要的部分还是权限的管理,而且这部分也比较难理解,网上没有一篇文档是详细介绍该方面的,所以本文就针对ioFTPD的权限控制做一个讲解。

我使用的版本是去http://www.inicom.net/forum/forumdisplay.php?f=38下载的V6.2.1,该版本集成了一个图形管理界面和生成服务的工具,比官方的5.8.5r要好用一些(官方已经将其开源,由公众来主导后续版本的开发和维护)

   ioFTPD的文件系统由vfs、文件夹属性、用户权限这三个部分组成,它们之间是互相关联的。

一、vfs

vfs是虚拟文件系统的意思,每个ioFTPD进程均需要有一个虚拟的根文件系统才能正常启动,ioFTPD启动的时候会去读取..\etc\default.vfs这个文件,所以需要在这里定义一个虚拟的根文件系统。以下简称“虚拟根目录”。

假设你希望D:\ftpdata作为你的虚拟根目录,可以这么写:

[..\etc\default.vfs]

….

"D:\ftpdata" /

...

物理路径需要用双引号括起来(单字节)

另外,你的musicmovie这两个目录不再ftpdata这个目录中,又希望希望能让用户下载,可以将这两个文件夹映射到根目录之下。

"D:\movie" /movie

"D:\music" /music

这样用户登录到ftp后,就可以看到ftpdata这个目录里面的内容以及moviemusic这两个目录了。

 

为了便于下面的描述让我们先来看看一个实际FTP服务器的文件夹组织结构

 

D:\ftpdata

D:\ftpdata\Incoming

D:\ftpdata\Incoming\alice

D:\ftpdata\Incoming\bob

D:\ftpdata\Download

 

二、文件夹属性

ioFTPD有一个默认的系统管理帐号:ioFTPD,它属于ioFTPD这个组。如果在操作系统中直接在虚拟根目录下创建文件夹,那么默认的子文件夹将继承父文件夹的属性,包括属主和组。也就是说Incomingdownload的属主和组均是ioFTPD,如下图所示:

 

ioFTPD的文件夹属性仿照了*nix的文件系统,通过3位数字的组合来标识该文件夹的不同操作权限。

下面是ioFTPD v6.2.1ioFTPD.ini对操作权限的解释:

 

#   drwxr-xr-x 2 user group

#   -rwxrwxr-x 1 user group

#   ^^  ^  ^

#   ||  |  |

#   ||  |  --- permissions for everyone

#   ||  ------ permissions for people in the same group as the file

#   |--------- permissions for the owner of the file

#   ---------- d for directory, - for file, l for symbolic link

#

# r = means you can read the file

# w = means you can delete/write to the file

# x = for directories means you can enter the directory.

#

# To get the numeric representation of the permission just add up the octal

# bits for each trio of permissions for owner,group, or other...

# 421

# rwx = 7

# rw- = 6

# r-x = 5

# r-- = 4

 

每个文件夹的默认权限通过..\system\ioFTPD.ini来配置

Default_Directory_Attributes =755    0:0

Default_File_Attributes        =644    0:0

….

 

先分析一下download这个目录,因为这个目录的目的就是让公共用户下载,所以它需要设置为所有人可读,可进入目录,而755最后的那个5标识让所有人可读,可进入,满足了该目录的要求。亦即匿名用户也可以访问,下载。

再看Incoming这个目录,不是所有人都有权限上传文件,否则很快就会有人利用该FTP做临时的网络硬盘,甚至被利用来做盗版数据的分发途径。所以必须限制该文件夹的读写权限。



相关文章:
apache jsp tomcat 虚拟主机 在加上pure-ftp
squid 优化(解释篇)
调整centos文件打开数
REDHAT AS安装10g错误
用SystemImager克隆系统(一)
openssh 5.1版使用chroot sftp帐号技术
HPUX从入门到提高之三
postfix+vm-pop3+openmail 构造邮件服务器
SecureCRT设置
双机备份方案(resin集群+冷备)
开启rsh服务
Solaris9允许root用户登录ssh
Solairs如何上网?
实战PXE启动安装Redhat AS 5 Linux
RHCT Lab1: Network Installation
RHCE Lab1: Kickstart
RHCE Lab1.1: Auto Installation
apache版本号显示的问题
修改tomcat端口号
RS/6000小型机故障的基本定位方法
Linux下的权限管理-ACL
CactiEZv9监控CentOS5.0
Red Hat Enterprise Linux 5.2 简明安装手册
StorNext 简单安装说明
FreeBSD7 Apache2.2 PHP5 PostgreSQL8.3 Ports安
关于nagios监控系统添加主机和服务脚本
C和C++语言学习总结
apache优化
CentOS+Nginx+PHP+Mysql(1)
Apache服务器限制并发连接和下载速度