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和RMDDIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的ALL:所有权限LOGIN:是否允许登陆的权限权限控制: AllowUser 针对某个用户允许的Limit DenyUser 针对某个用户禁止的Limit AllowGroup 针对某个用户组允许的Limit DenyGroup 针对某个用户组禁止的Limit AllowAll 针对所有用户组允许的Limit DenyAll 针对所有用户禁止的Limit2. ?上传/下载速度限制 ,这个也是做ftp最关心的TransferRate ?STOR ? ?2048 ?group movie ? ##上传,最后跟属主,比如user,groupTransferRate ?RETR ? ?2048 ?group movie ? ##下i载,?最后跟属主,比如user,group3. ?匿名用户设置,使用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"ServerTypestandaloneDefaultServeronPort21UseIPv6offUmask022UserrootGrouprootDefaultRoot /home/rsync/upload rsyncDefaultRoot~ movieMaxInstances30MaxClients 100 "服务器满员了"AllowStoreRestart onAllowOverwriteonRootLogin off<Directory /home/rsync/upload> AllowOverwrite on <Limit ALL> AllowUser rsync </Limit></Directory><Directory /home/movie> <Limit ALL> AllowAll </Limit> TransferRate STOR 2048 group movie TransferRate RETR 2048 group 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>?