今天花了一个早上时间,使用了proftpd搭建了一个ftp服务器,期间也遇到过一些问题,做一下记录。
1. 权限如何限制
1.<Directory /home/rsync/upload/*>
2. <Limit MKD RNFR DELE RMD WRITE>
3. DenyUser ftp
4. </Limit>
5. </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控制还是比较方便的,控制只允许只读和上传
1.<Anonymous /home/rsync/upload>
2. User ftp
3. Group ftp
4. UserAlias anonymous ftp
5. MaxClients 30
6. DisplayLogin welcome.msg
7. DisplayChdir .message
8. <Directory /home/rsync/upload/*> ##特定目录不运行进行指定操作,
9. <Limit MKD RNFR DELE RMD WRITE>
10. DenyUser ftp
11. </Limit>
12. </Directory>
13.</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配置:
1.ServerName "DzoneFtp"
2.ServerType standalone
3.DefaultServer on
4.
5.Port 21
6.UseIPv6 off
7.Umask 022
8.
9.User root
10.Group root
11.DefaultRoot /home/rsync/upload rsync
12.DefaultRoot ~ movie
13.
14.MaxInstances 30
15.MaxClients 100 "服务器满员了"
16.AllowStoreRestart on
17.AllowOverwrite on
18.RootLogin off
19.
20.<Directory /home/rsync/upload>
21. AllowOverwrite on
22. <Limit ALL>
23. AllowUser rsync
24. </Limit>
25.</Directory>
26.
27.<Directory /home/movie>
28. <Limit ALL>
29. AllowAll
30. </Limit>
31. TransferRate STOR 2048 group movie
32. TransferRate RETR 2048 group movie
33.</Directory>
34.
35.<Anonymous /home/rsync/upload>
36. User ftp
37. Group ftp
38. UserAlias anonymous ftp
39. MaxClients 30
40. DisplayLogin welcome.msg
41. DisplayChdir .message
42. <Directory /home/rsync/upload/*>
43. <Limit MKD RNFR DELE RMD WRITE>
44. DenyUser ftp
45. </Limit>
46. </Directory>
47.</Anonymous>