Linux 版 (精华区)

发信人: Kermit (Kermit), 信区: Linux
标  题: proftp架设个人FTP实例(zz)
发信站: BBS 哈工大紫丁香站 (Wed Feb  9 10:31:31 2005)

http://218.94.36.113/vd748508/bbscon?board=LinuxUnix&file=M.1107540771.A&num=1
0035

从开始使用Linux起,就一直想建立一个个人ftp服务器,折腾了N
多次,终于今天有了个雏型。关于具体的命令设置可以在很多站点
和帖子上有,这里想写的是这次建立的FTP服务的经过和我的配置。

平台是Debian,ftp server软件是proftp。

我的ftp目录结构如下:
/home/ftp/
    |___
    |  [incoming]
    |___
       [Pub]
          |___
          |  [.....]
          |___
             [Skating]
                 |___
                 |  [...]
                 |___
                    [incoming]
                

基本设置:
所有用户被限制在自己的根目录。
限制5个连接,每个IP限制一个连接。

用户及权限设置:
anonymous:      
        根目录:/home/ftp/
        ~              允许下载,禁止上传
        ~/incoming     允许上传,禁止下载
        上传速率:300kB/s
        下载速率:300kB/s
skating:
        根目录:/home/ftp/Pub/Skating
        ~               允许下载,禁止上传
        incoming目录不允许下载
        下载速率:600kB/s
upskate
        根目录:/home/ftp/Pub/Skating/incoming
        ~               允许上传,禁止下载
        下载速率:800kB/s

-----------------------------------------------
anonymous用户使用proftp的默认设置,只是添加了
对下载速率的限制。

-----------------------------------------------
anonymous:
        在<Anonymous>内部限制,结构为:
        <Anonymous ~>
        User    ftp
        Group   nogroup
        UserAlias       anonymous       ftp
        ........

        # 设置最大连接数
        # 相同用户最大连接数
        # 每个IP最大连接数
        MaxClients      5
        MaxClientsPerUser       5
        MaxClientsPerHost       1

        # 下载速率
        # 上传速率
        TransferRate    RETR    300
        TransferRate    STOR    300
        ........

        # 用<Limit>设置目录权限,对所有用户禁止写操作
        <Directory *>
          <Limit WRITE>
            DenyAll
          </Limit>
        </Directory>

        # 对incoming目录禁止读写,但允许上传
        <Directory incoming>
        Umask   022     022
          <Limit READ WRITE>
            DenyAll
          </Limit>
          <Limit STOR>
            AllowAll
          </Limit>
        </Directory>
        </Anonymous>
                
------------------------------------------------
对skating和upskate用户配置之前,要作一些
准备工作:
一、建立skating用户组,建立skating, upskate用户

>groupadd skating
>useradd -d /home/ftp/Pub/Skating   -g skating  -s /bin/fales  skating
>useradd -d /home/ftp/Pub/Skating/incoming  -g skating -s /bin/fales upskate
         ~~                                 ~~         ~~
         指定目录                           用户组     启动shell

二、将/bin/fales设定为允许的登录脚本
>echo /bin/fales >> /etc/shells

三、设置权限
主要是对上载下传速率进行设置。在出了Anonymous的全局范围进行定义。
下面的配置除了对上载下传配置,还有一些有用的配置,列出的是与默认
配置不同或没有的:
        # 设定发呆时间等
        TimeoutNoTransfer       600
        TimeoutIdle             600
        TimeoutStalled          600

        # 允许续传(上传,下载)
        AllowRetrieveRestart    on
        AllowStoreRestart       on
        
        # 屏蔽服务器信息
        ServerIdent             off

        # 限制在用户根目录
        DefaultRoot             ~

        # 设置相应用户的传送速率
        TransferRate            RETR    600     user    skating
        TransferRate            STOR    800     user    upskate

        # 对特定用户目录进行限制
        # 对skating的目录禁止写操作
        <Directory /home/ftp/Pub/Skating>
        Umask   022     022
          <Limit WRITE>
            DenyAll
          </Limit>
        </Directory>
        
        # 对Skating/incoming目录只允许upskate用户写
        # 并且禁止下载
        <Directory /home/ftp/Pub/Skating/incoming>
        Umask   022     022
          <Limit WRITE>
            AllowUser   upskate
          </Limit>
          <Limit RETR>
            DenyAll
          </Limit>
        </Directory>

----------------------------------------------------
小结:

看似配置文件很复杂,其实主要用到的内容很少:
1. TransferRate等配置命令,常用的基本上在默认配置中就有,
   只要作一些调整,或者到网上找详细的。
2. <Anonymous> ... </Anonymous>
   对匿名用户配置,一般用户没有特定环境,主要对相应目录进行配置。
3. <Directory pathname> ... </Directory>
   对目录进行配置,具体权限用<Limit xxx> ... </Limit>限制
4. <Limit xxx> XXX </Limit>
   其中,xxx代表相应权限,具体意义如下,以供参考:
        CMD     Change Working Directory 改变工作目录
        MKD     Make Direcrory           创建目录
        RNFR    ReName FRom              改名
        DELE    DELEte                   删除
        RMD     ReMove Directory         删除目录
        RETR    RETR                     从服务器获得数据
        STOR    STORe                    保存数据到服务器
        READ    可读权限,但不包括列目录
        WRITE   写文件或者目录
        DIRS    列目录
        ALL     所有权限
        LOGIN   登录权限

        XXX表示操作对象。针对用户和用户组,有下列:
        AllowUser       针对某用户允许
        DenyUser        针对某用户禁止
        AllowGroup      针对某用户组允许
        DenyGroup       针对某用户组禁止
        AllowAll        针对所有用户组允许
        DenyAll         针对所有用户禁止

--

※ 来源:·哈工大紫丁香 http://bbs.hit.edu.cn·[FROM: 219.232.57.*]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.114毫秒