热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

freebsd平台下ftp服务架设的全程指南

开始安装本文要介绍的是基于FreeBSD平台的FTP服务的配置过程。第一步:下载FTP服务源代码包。proftpd-1.2.7.tar.gz下载地址:ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gzproftpd-mod-quotatab-1
开始安装
    本文要介绍的是基于FreeBSD平台的FTP服务的配置过程。

    第一步:下载FTP服务源代码包。    
proftpd-1.2.7.tar.gz下载地址:ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz
proftpd-mod-quotatab-1.2.4.tar.gz下载地址:http://www.castaglia.org/proftpd/


    第二步:解压缩源代码包。
命令格式为:
    # cd /home/ylf/app                 # “/home/ylf/app”为FTP上传目录
    # tar zxvf proftpd-1.2.7.tar.gz
    # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
然后进入“mod-quotatab”目录,把“mod_quotatab”中的文件拷贝到“proftpd”的“modules” 目录下,命令格式为:
    # cd mod_quotatab
    # cp * ../proftpd-1.2.7/modules 

    第三步:修改位于proftpd-1.2.7/contrib 目录下的“mod_sql_mysql.c”文件。
命令格式为:
    # cd /home/ylf/app/proftpd-1.2.7/contrib.
    # vi mod_sql_mysql.c
    在此文件中找到“#include ”字段,然后将其改为自己的实际路径,比如:
    #include


编译安装proftpd
    第四步:编译安装proftpd。命令格式为:
    # cd /home/ylf/app/proftpd-1.2.7
    #./configure--prefix=/usr/local/proftpd
--with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
    --with-includes=/usr/local/include/mysql
    --with-libraries=/usr/local/lib/mysql
    # make
    # make install

    第五步:进入配置文件所在目录,备份原有配置文件。命令格式为:
    # cd /usr/local/proftpd/etc            #进入配置文件所在目录
    # mv proftpd.conf proftpd.conf.bak    #备份原有配置文件

    第六步:编辑新的配置文件“proftpd.conf”(可以参照原配置文件进行)。
以下列举一些主要应配置的地方:
    # Port 21 is the standard FTP port.               #配置FTP服务端口号
    MaxClientsPerHost 3                         #设置每台主机最多并发连接数
    DefaultRoot ~ ftpusers
    DefaultRoot ~ FTPGRP                       #将用户限制在自己的主目录下
    QuotaDirectoryTally on                       #启用磁盘限额
    < Anonymous /ftp> 
    User ftp 中国网管联盟
    Group ftpusers                              #设置匿名用户目录为“/ftp”
    SQLConnectInfo FTP@localhost root 123456     ## 设置数据库联接信息。FTP为数据库名,localhost为主机名,root为连接数据库的用户名,#123456为密码。

建立数据库和表
    第七步:为ftp用户建立相应的数据库和表。
    1. 进入mysql数据库命令状态并建立数据库FTP
    # mysql ?p
    CREATE DATABASE FTP 
    2.接着在这个数据库中建立一个用户表FTPUSERS,命令格式为:
    use FTP 
    create table FTPUSERS (
    userid TEXT NOT NULL,
    passwd TEXT NOT NULL,
    uid INT NOT NULL,
    gid INT NOT NULL,
    homedir TEXT,
    shell TEXT
    ) 
关于此用户表的说明:此表格是为用户认证准备的,因此必不可少。其中“userid”是用做FTP服务的用户名 “passwd”是指此用户的密码 这两个字段是必不可少的。另外“uid”是系统用户的ID,也就是所映射的系统用户 “gid”是所属系统组的ID “homedir”是该用户所在的HOME目录 “shell”是为该用户指定相应的shell。当然也可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date等等,这里就不一一详述了,我们只了解主要部分。


    第八步:为FTP用户建立相应的系统用户(本例是将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP)。
    # pw groupadd FTPGRP -g 2001                                     # 建立FTPGRP组
    # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin       # 建立FTPUSR用户
    # mkdir /home/FTP
    # chown FTPUSR /home/FTP
    # chgrp FTPGRP /home/FTP                                # 为FTPUSR用户建立HOME目录,并把所有的FTP user 活动空间全放在此目录下

    第九步:添加测试用户(本例为“tryuser”)。
    use FTP
    INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
    valueS (’tryuser’, ’ArrayArrayArrayArrayArrayArray’, ’2001’, ’2001’, ’/home/FTP/user1’, ’’ ) 

配置完成
    第十步:对此测试用户设置磁盘限额。
    INSERT INTO `quotalimits` ( `name` , `quota_type` , `per_session` , `limit_type` , `bytes_in_avail` , `bytes_out_avail` , `bytes_xfer_avail` , `files_in_avail` , `files_out_avail` , `files_xfer_avail` )
VALUES (’ tryuser ’, ’user’, ’false’, ’soft’, ’20240000’, ’0’, ’4048000’, ’1000’, ’0’, ’20’) 
解释:对此测试用户给予20M空间,最多能上传1000个文件到服务器上,文件传输流量为40M,只能传输20个文件

第十一步:设置匿名登录,最终完成配置。

    对于匿名登录用户,建议单独为其划分硬盘分区,所有的匿名用户文件都放在这个单独的分区里。
    1. 添加匿名系统用户组users1和匿名用户ftp1。
    # pw groupadd users1
    # pw useradd ftp1 -g users1 -d /ftp -s /sbin/nologin          # “/ftp”为匿名用户所在分区
    2. 在“/ftp”分区下建立匿名用户目录并设置相应权限。
    # mkdir /ftp/incoming
    # mkdir /ftp/pub
    # mkdir /ftp/bin
    # mkdir /ftp/etc
    # chown ftp1 /ftp/incoming
    # chgrp users1 /ftp/incoming

    3.测试此匿名用户。
在浏览器地址栏输入配置好的ftp服务器地址,如果能够正常显示刚才建立的几个目录,而且进入incoming目录可以在里面新建文件夹或文件,即表示匿名用户“ftp1”建立成功。OK,至此,FTP服务的配置过程也圆满结束。如果大家在理解过程中有什么困难,可以参阅相关资料或给我们留言交流。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文介绍了如何在具备多个IP地址的FTP服务器环境中,通过动态地址端口复用和地址转换技术优化网络配置。重点讨论了2Mb/s DDN专线连接、Cisco 2611路由器及内部网络地址规划。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 创建第一个 MUI 移动应用项目
    本文将详细介绍如何使用 HBuilder 创建并运行一个基于 MUI 框架的移动应用项目。我们将逐步引导您完成项目的搭建、代码编写以及真机调试,帮助您快速入门移动应用开发。 ... [详细]
author-avatar
主播新鲜看连
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有