首页 电脑 电脑学堂 查看内容

Linux下proftp学习笔记-配置全功略

2009-7-19 17:37 812 0

摘要:       proftp学习笔记(一)   这几天,公司终于放假了,终于可以安下心来好好学些proftp+mysql+quota。   安装pro...

      proftp学习笔记(一)   这几天,公司终于放假了,终于可以安下心来好好学些proftp+mysql+quota。   安装proftp之前,必须先做一个工作,假如你的mysql是自己编译的,那就必须先修改/etc/ld.so.conf,否则后面运行proftp会报错。   vi /etc/ld.so.conf   添加下面一行:   代码:   /usr/local/mysql/lib/mysql   注意大家如果mysql的安装路径于我不一样,则填写相应的路径,有关mysql的编译安装请参考《Linux+Apache+Mysql+PHP典型配置》。   1。下载相关软件   代码:   wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz   下载proftp的最新版本1.2.9   代码:   wget http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.11.tar.gz   这是配合proftp的磁盘限额的模块   2。解压编译   代码:   tar zvxf proftpd-1.2.9.tar.gz   tar zvxf proftpd-mod-quotatab-1.2.11.tar.gz   cp mod_quotatab/*.c proftpd-1.2.9/contrib/   cp mod_quotatab/*.h proftpd-1.2.9/contrib/   vi proftpd-1.2.9/contrib/mod_sql_mysql.c   找到#include 这一行,将mysql.h改成你的系统中此文件所在的路径,如/usr/local/mysql/include/mysql/mysql.h   编译:   代码:   ./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/local/mysql/include/mysql --with-libraries=/usr/local/mysql/lib/mysql   make   make install   ok, 现在我们可以来启动proftp了,只要   代码:   /usr/local/proftpd/sbin/proftpd   用你的ftp客户端试验以下,应该可以正常登陆,包括匿名和linux用户名可以。   其实默认的proftp满足日常的服务器管理用还是绰绰有余的,有个地方还是要修改一下,就是默认proftp的配置文件不支持ftp续传,所以我们只要   代码:   vi /usr/local/proftpd/etc/proftpd.conf   添加以下两行   代码:   AllowRetrieveRestart on   AllowStoreRestart on   重新启动以下proftp,就可以正常续传文件了。   创建proftpd脚本   只要在proftp的源代码目录   代码:   cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd   记得修改proftpd文件,一般要修改proftpd的实际路径   代码:   chmod 755 /etc/rc.d/init.d/proftpd   ok   以后就可以用这个教本来启动,停止,重启proftp   呵呵,今天就讲这些,明天讲些proftp的一些基础配置:)   原文地址:http://www.5ilinux.com/blog/archives/000085.html   转载请注明出处和署名,并请保持一致   proftp学习笔记(二)   上次我们讲了proftp的基本安装,由于我们后面有关于mysql和quota的设置,所以编译的时候把相应的模块都编译进去了,如果你不需要mysql和磁盘限额的功能,完全可以不需要这么编译。   这里要讲一个非常实用的命令,   代码:   /usr/local/proftpd/sbin/ftpshut   这个命令还是比较实用的,因为你可能需要不断的调整你的服务器,而这个命令就非常灵活,可以在不停止proftpd进程的前提下,定时停止ftp连接,这里将会详细说它是怎么使用的。   代码:   ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]   -l min: 在ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受   -d min: 在ftp关闭服务之前的几分钟内,已经建立的ftp连接将被中止   time: 在多少时间后,服务器将关闭ftp服务,格式有两种   +number 经过number分钟后关闭   MMHH 在今天MM:HH服务器将关闭   注意,这里我们用这个命令是把ftp服务给停了,但实际的proftpd进程还没停止,所以一般调试ftp会使用到这个命令。   举例:   再经过30分钟后,FTP服务将关闭,在这之前的20分钟不可接受任何新的ftp连接,已经建立的在服务关闭前10分钟强制断线,并在客户端显示“FTP Server Will shutdown at time”   代码:   ftpshut -l 20 -d 10 +30 "FTP Server Will shutdown at time"   其实ftpshut就是产生/etc/shutmsg ,你只要删除这个文件ftp又可以重新服务,或者   直接   代码:   ftpshut -R   好了,开始讲一些proftpd的基本配置吧,其实大家如果熟悉apache的配置的话,你会发现proftpd的设置基本都是类似的,它的配置基本格式是   代码:   #全局设置   设置项目1 参数1   设置项目2 参数2   #某个目录的设置   <Directory "路径名">   ...   ...   </Directory>   #关于匿名用户的设置   <Anonymous "匿名登陆的目录">   ...   ...   <Limit 限制动作>   ...   ...   </Limit>   </Anonymous>   我们用到的比较多的可能是Limit的使用,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:是否允许登陆的权限   针对上面这个Limit所应用的对象,又包括以下范围   代码:   AllowUser 针对某个用户允许的Limit   DenyUser 针对某个用户禁止的Limit   AllowGroup 针对某个用户组允许的Limit   DenyGroup 针对某个用户组禁止的Limit   AllowAll 针对所有用户组允许的Limit   DenyAll 针对所有用户禁止的Limit   关于限制速率的参数为:   代码:   TransferRate STOR|RETR 速度(Kbytes/s) user 使用者   下面我们以例子来解说proftp的配置,这样大家可能更加容易理解。   1。ftp服务器支持断点续传,且最大支持同时10人在线,每个ip只允许一个连接;   2。允许ftpusers用户组只能访问自己的目录,而不能访问上级或者其他目录;   3。用户登陆服务器时不显示ftp服务器版本信息,以增加安全性;   4。建立一个kaoyan的ftp帐户,属于ftpusers组,kaoyan用户只允许下载,没有可写的权限。下载速率限制在50Kbytes/s。   5。建立一个upload用户,也属于ftpusers组,同kaoyan用户的宿主目录一样,允许upload用户上传文件和创建目录的权限,但不允许下载,并且不允许删除目录和文件的权限,上传的速率控制在100Kbytes/s   先是前期的用户和组添加以及目录的权限设置   代码:   group add ftpusers   useradd -d /home/kaoyan -g ftpusers -s /bin/fales kaoyan   useradd -d /home/kaoyan -g ftpusers -s /bin/fales upload   chown -R kaoyan:upload /home/kaoyan   chmod -R 775 /home/kaoyan   如果你只想ftpusers组的用户访问,可以设置成770都行。   设置/usr/local/proftpd/etc/proftpd.conf   注意#表示注释,对设置没影响,可以不写   代码:   ServerName "Frank's FTP Server"   ServerType standalone   DefaultServer on   Port 21   Umask 022   MaxInstances 30 #最多有30个proftpd的PID   User nobody   Group nobody   TimeoutStalled 10   MaxClients 10 #最多允许10个用户在线   MaxClientsPerHost 1 "对不起,一个IP只允许一个连接"   AllowStoreRestart on   #允许断点续传(上传),断点续续(下载)是默认支持的,不用设置   DisplayLogin welcome.msg #欢迎词文件   ServerIdent off #屏蔽服务器版本信息   DefaultRoot ~ ftpusers #设置ftpusers组只能访问自己的目录   <Directory />   AllowOverwrite on   </Directory>   <Directory /home/kaoyan>   <Limit WRITE> #不允许写   DenyUser kaoyan   </Limit>   <Limit RMD RNFR DELE RETR> #不允许删除,改名,下载   DenyUser upload   </Limit>   TransferRate RETR 50 user kaoyan   TransferRate STOR 100 user upload   </Directory>   我这里实现的方式还可以通过   代码:   <Anonymous ~kaoyan>   ...   </Anonymous>   <><Anonymous ~upload>
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部