ProFTPD一个Unix平台上的FTP服务器程序

ProFTPD一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在">自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。

ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd 的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。

使用 Proftp 有个好处,可以用其它方式认证,不用实体帐号登入,可以减少试帐号机会。

这次利用mysql数据库,

环境:Ubuntu 6.06.1 LTS

1. 安装 proftpd-mysql 套件

sudo apt-get install proftpd-mysql

2. 设定 mysql 账号

mysql -u root -p
         create database ftp;
         GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’;
         FLUSH PRIVILEGES;

3. 建立mysql数据库

CREATE TABLE ftpgroup (
         groupname varchar(16) NOT NULL default ”,
         gid smallint(6) NOT NULL default ‘5500′,
         members varchar(16) NOT NULL default ”,
         KEY groupname (groupname)
         ) TYPE=MyISAM COMMENT=’ProFTP group table’;
         CREATE TABLE ftpuser (
         id int(10) unsigned NOT NULL auto_increment,
         userid varchar(32) NOT NULL default ”,
         passwd varchar(32) NOT NULL default ”,
         uid smallint(6) NOT NULL default ‘5500′,
         gid smallint(6) NOT NULL default ‘5500′,
         homedir varchar(255) NOT NULL default ”,
         shell varchar(16) NOT NULL default ‘/sbin/nologin’,
         count int(11) NOT NULL default ‘0′,
         accessed datetime NOT NULL default ‘0000-00-00 00:00:00′,
         modified datetime NOT NULL default ‘0000-00-00 00:00:00′,
         PRIMARY KEY (id),
         UNIQUE KEY userid (userid)
         ) TYPE=MyISAM COMMENT=’ProFTP user table’;

4. 设定 proftpd.conf ,让 proftp 可以用 mysql 数据认证

SQLBackend mysql # 使用 mysql 数据库为主
         SQLAuthTypes Backend # 密码认证 已 PASSWORD() 产生为主
         SQLAuthenticate on
         SQLConnectInfo ftp@localhost proftpd password # MySQL 联机信息,数据库名称@主机 账号 密码
         SQLUserInfo ftpuser userid passwd uid gid homedir shell # 使用者数据库字段
         SQLGroupInfo ftpgroup groupname gid members # 群组数据库字段
         SQLLogFile /var/log/proftpd/sql.log # SQL Log 檔
         SQLHomedirOnDemand on # 当 Home 目录不存在,会自己产生。
         SQLLog PASS updatecount # SQL Log 格式,当正确登入时,要执行的 SQL 语法
         SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() where userid=’%u’” ftpuser
         SQLLog STOR,DELE modified # SQL Log 格式,当储存或删除档案时,要执行的 SQL 语法
         SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser
         RequireValidShell off

5. 建立使用者账号

mysql -u root -p
         insert into ftp (userid, passwd , uid, gid , homedir ) values (’ubuntu_user’,password(’12345′), ‘5500′,’5500′,’/home/ftp/ubuntu_user’);

建立 ubuntu_user 账号,密码为 12345 ,目录位于 /home/ftp/ubuntu_user , uid / gid 为此 user 上传档案时的 uid / gid。

6. 重新启动 Proftp

sudo /etc/init.d/proftpd restart

请用刚刚建立好的账号登入看看,若顺利就可以登入指定目录内。

7. 除错

有任何问题,请检查 sql.log ,会有信息说明错误的原因。

时间: 2024-11-13 08:55:40

ProFTPD一个Unix平台上的FTP服务器程序的相关文章

CrossFTP一个专业级的多平台FTP服务器

CrossFTP是一款强大便捷的多标签FTPhttp://www.aliyun.com/zixun/aggregation/5218.html">客户端软件.采用类似资源管理器的界面设计, 喜欢FlashFXP和CuteFTP的用户绝对不容错过.同时附带CrossFTP服务器的网络启动,帮助你构建专业级FTP系统. CrossFTP的主要功能有: --优良的Unicode/中文编码支持  --站点管理, 证书保管,配置文件远程备份  --多标签支持  --站点密码加密  --CrossFT

Vsftpd一款Ubuntu中最受推崇的FTP服务器程序

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 http://www.aliyun.com/zixun/aggregation/16434.html">Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标.目前在开源操作系统中常用的FTPD套件主要还有ProFTPD.PureF

在UNIX平台上的Netscape Enterprise Server 3.x下配置PHP

作者:polaris(php@yeah.net)一.基本原理 Netscape Enterprise Server以两种方式执行CGI程序. 指定一仅包含CGI程序的目录,所有在该目录下的程序不管是是什么后缀名都被执行  指定以某种后缀名结尾的程序均为CGI程序,放在服务器的任何位置都会被执行,PHP程序以该方式执行. 在mime.types中包含magnus-internal/cgi bat,cgi,exe,这告诉Netscape Enterprise Server后缀名为bat,cgi,ex

relink:在Linux/UNIX平台上relink Oracle软件(转)

当操作系统升级后.操作系统打完补丁后.安装完Oracle补丁之后和relink过程中出现问题时,都会用到relink方法来保证Oracle软件的正常使用.本文介绍一下relink方法的使用.   1.以oracle用户登录操作系统[root@secdb ~]# su - oracleora11g@secdb /home/oracle$ 2.确定$ORACLE_HOME环境变量设置正确ora11g@secdb /home/oracle$ echo $ORACLE_HOME/oracle/ora11

用C++ Builderw做Ftp服务器程序

#include <stdlib.h> //Required for atoi() #include "..\winsock.h" //Winsock header file #define PROG_NAME "Quick FTP Version 1" #define HOST_NAME "NIC.DDN.MIL " // FTP server host #define PASSWORD "PASS guest\r\n &

Unix/类Unix系统ftp服务器proftpd安装配置指南

ProFTPD是一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发.发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码. ProFTPD设计目标是实现一个安全且易于设定的FTP Server.目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了.虽然wu-ftpd有着极佳的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP

在Linux系统下利用ProFTPD架设一台FTP服务器

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   ProFTPD:一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发.发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码. ProFTPD设计目标是实现一个安全且易于设定的FTP Server.目前Unix或类Unix平台上 FTP Server十分有

《UNIX网络编程 卷1:套接字联网API(第3版)》——1.5 一个简单的时间获取服务器程序

1.5 一个简单的时间获取服务器程序 我们可以编写一个简单的TCP时间获取服务器程序,它和1.2节中的客户程序一道工作.图1-9给出了这个服务器程序,它使用了上一节中讲过的包裹函数. 创建TCP套接字10 TCP套接字的创建与客户程序相同. 把服务器的众所周知端口捆绑到套接字11~15 通过填写一个网际套接字地址结构并调用bind函数,服务器的众所周知端口(对于时间获取服务是13)被捆绑到所创建的套接字.我们指定IP地址为INADDR_ANY,这样要是服务器主机有多个网络接口,服务器进程就可以在

用Linux构建高效FTP服务器

在众多网络应用中,FTP(文件传输协议)有着非常重要的地位.Internet中一个十分重要的资源就是软件资源,而各种各样的软件资源大多数都放在FTP服务器中.与大多数Internet服务一样,FTP也是一个客户机/服务器系统.用户通过一个支持FTP协议的客户机程序,连接到主机上的FTP服务器程序.用户通过客户机程序向服务器程序发出命令,服务器程序执行用户发出的命令,并将执行结果返回给客户机. FTP服务可以根据服务对象的不同分为两类:系统FTP服务器只允许系统上的合法用户使用:匿名FTP服务器(