zvvdyzqxyy 发表于 2016-6-8 09:27:15

ftp服务器搭建(proftpd)

  今天花了一个早上时间,使用了proftpd搭建了一个ftp服务器,期间也遇到过一些问题,做一下记录。
  
  1. 权限如何限制
  

<Directory /home/rsync/upload/*>
<Limit MKD RNFR DELE RMD WRITE>
DenyUser ftp
</Limit>
</Directory>
  
  Limit属性可以有:
  



[*]CMD:Change Working Directory 改变目录
[*]MKD:MaKe Directory 建立目录的权限
[*]RNFR: ReName FRom 更改目录名的权限
[*]DELE:DELEte 删除文件的权限
[*]RMD:ReMove Directory 删除目录的权限
[*]RETR:RETRieve 从服务端下载到客户端的权限
[*]STOR:STORe 从客户端上传到服务端的权限
[*]READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
[*]WRITE:写文件或者目录的权限,包括MKD和RMD
[*]DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
[*]ALL:所有权限
[*]LOGIN:是否允许登陆的权限

权限控制:



[*]  AllowUser 针对某个用户允许的Limit
[*]  DenyUser 针对某个用户禁止的Limit
[*]  AllowGroup 针对某个用户组允许的Limit
[*]  DenyGroup 针对某个用户组禁止的Limit
[*]  AllowAll 针对所有用户组允许的Limit
[*]  DenyAll 针对所有用户禁止的Limit


2.  上传/下载速度限制 ,这个也是做ftp最关心的


[*]TransferRate  STOR    2048  group movie   ##上传,最后跟属主,比如user,group
[*]TransferRate  RETR    2048  group movie   ##下i载, 最后跟属主,比如user,group

3.  匿名用户设置,使用proftpd控制还是比较方便的,控制只允许只读和上传




<Anonymous /home/rsync/upload>
Userftp
Groupftp
UserAlias    anonymous ftp
MaxClients30
DisplayLoginwelcome.msg
DisplayChdir.message
<Directory /home/rsync/upload/*> ##特定目录不运行进行指定操作,
<Limit MKD RNFR DELE RMD WRITE>
DenyUser ftp
</Limit>
</Directory>
</Anonymous>


 

4.  文件编码问题, 因为我电脑装了ubuntu,使用的是utf-8编码,所以我这边上传的电影片名都是使用了utf-8编码,所以在用IE浏览器打开时就出现编码问题,需要手工转换,不是很方便。

网上找了个命令,轻松搞定编码转化问题:




文件名转换: convmv 


参数: 

-f  原始编码

-t  目标编码

-r  递归处理

--notest 假处理,根svn --dry-run一样的概念,看看哪些文件需要处理




内容转换: iconv 

-f 原始编码

-t 目标编码




具体命令:  

convmv -f utf8 -t gb2312 -r  *




5. ftp帐号登录访问,因为设置了匿名帐号,所以直接访问ftp://xxxx就直接以匿名登录了,如果我要切换用户名咋办?

访问url : 

ftp://user@xxxx   #指定登录的用户名,需要输入密码

ftp://user:pwd@xxx #直接通过指定的用户名和密码进行登录




搞定。




最后的proftpd.conf配置: 

ServerName"DzoneFtp"
ServerTypestandalone
DefaultServeron
Port21
UseIPv6off
Umask022
Userroot
Grouproot
DefaultRoot /home/rsync/upload rsync
DefaultRoot~ movie
MaxInstances30
MaxClients100 "服务器满员了"
AllowStoreRestart               on
AllowOverwriteon
RootLogin                     off
<Directory /home/rsync/upload>
AllowOverwrite                on
<Limit ALL>
AllowUser rsync
</Limit>
</Directory>
<Directory /home/movie>
<Limit ALL>
AllowAll
</Limit>
TransferRateSTOR    2048group movie
TransferRateRETR    2048group movie
</Directory>
<Anonymous /home/rsync/upload>
Userftp
Groupftp
UserAlias    anonymous ftp
MaxClients30
DisplayLoginwelcome.msg
DisplayChdir.message
<Directory /home/rsync/upload/*>
<Limit MKD RNFR DELE RMD WRITE>
DenyUser ftp
</Limit>
</Directory>
</Anonymous>
 
页: [1]
查看完整版本: ftp服务器搭建(proftpd)