热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

文章标题:Linux下proftp学习笔记-配置全功略。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  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
  
  #某个目录的设置
  
  ...
  ...
  

  
  #关于匿名用户的设置
  
  ...
  ...
  
  ...
  ...
  

  

  
  我们用到的比较多的可能是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组只能访问自己的目录
  
  
  AllowOverwrite on
  

  
   #不允许写
  DenyUser kaoyan
  

   #不允许删除,改名,下载
  DenyUser upload
  

  TransferRate RETR 50 user kaoyan
  TransferRate STOR 100 user upload
  

  
  我这里实现的方式还可以通过
  
  代码:
  
  
  ...
  

  
  <>

推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
author-avatar
为了未来而奋斗2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有