当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 用Linux架设FTP服务器(1)

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 用Linux架设FTP服务器(1)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 47 ::
收藏到网摘: n/a


概述
使用文件传输协议(FTP)来通过网络在计算机之间传输文件是很普遍的一种方法。几乎在所有的平台上面都有FTP的客户端和服务端的软件,因此用FTP来传送文件也是很方便的一个方法。
有很多配置FTP服务器的不同方法。其中一种是把FTP配置成只对系统中的用户开放的私有服务器,这也是FTP的默认配置。一个私有的FTP服务器只运行系统中的用户访问,而且可以对用户进行访问控制,这样可以给予或拒绝特定用户的访问权限。
另一种是把FTP服务器配置成匿名服务器。匿名FTP服务器允许任何人(不管有没有帐号)访问服务器并传输文件。因为可能存在潜在的安全问题,必须小心配置使得只允许访问系统中特定的目录。在这一节里,我们把FTP配置成“chrooted”的方式,这种配置运行用户访问,例如:Web站点的目录,但是不允许他们访问更高一层的目录。
注意事项
下面所有的命令都是Unix兼容的命令。
源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。
安装在RedHatLinux6.1下测试通过。
要用“root”用户进行安装。
wu-ftp的版本号是2.6.0。
编译和安装
把软件包(tar.gz)解压缩:
[root@deep]#cpwu-ftpd-version.tar.gz/var/tmp
[root@deep]#cd/var/tmp
[root@deep]#tarxzpfwu-ftpd-version.tar.gz
编译和优化
转到wu-ftpd的新目录下,运行下面的命令:
编辑“ftpcount.c”文件(vi+241src/ftpcount.c),改变下面这一行:
#ifdefined(LINUX)
改为:
#ifdefined(LINUX_BUT_NOT_REDHAT_6_0)
编辑“pathnames.h.in”文件(vi+42src/pathnames.h.in),改变下面这一行:
#define_PATH_EXECPATH"/bin/ftp-exec"
改为:
#define_PATH_EXECPATH"/usr/bin/ftp-exec"
我们把“ftp-exec”从“/bin”目录改到“/usr/bin”目录下。
先设置编译器的编译参数:
CC="egcs"
CFLAGS="-O9-funroll-loops-ffast-math-malign-double-mcpu=pentiumpro-march=pentiumpro-fomit-frame-
pointer-fno-exceptions"
./configure
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--disable-dnsretry
--enable-quota
--enable-pam
--disable-daemon
--disable-newlines
--disable-virtual
--disable-plsm
--disable-pasvip
--disable-anonymous
--enable-ls
--enable-numericuid
这些编译参数告诉编译器如何编译wu-ftpd:
不要用失败的DNS查询
加入对定额(QUOTA)的支持(如果OS支持)
加入对PAM的支持
不允许作为单独的daemon运行
删除过多的空行
不支持虚拟服务器
禁止PID加锁睡眠消息(用于繁忙的站点)
被动连接的时候不要求用同样的IP
不允许匿名ftp访问
使用内部的“ls”命令(试验性的)
内部的“ls”命令显示UID而不显示用户名(为了提高速度)
用下面的命令编译和安装软件:
make
makeinstall
install-m755util/xferstats/usr/sbin
touch/var/log/xferlog
chmod600/var/log/xferlog
cd/usr/sbin
ln-sfin.ftpd/usr/sbin/wu.ftpd
ln-sfin.ftpd/usr/sbin/in.wuftpd
strip/usr/bin/ftpcount
strip/usr/bin/ftpwho
strip/usr/sbin/in.ftpd
strip/usr/sbin/ftpshut
strip/usr/sbin/ckconfig
strip/usr/sbin/ftprestart
上面的“make”和“makeinstall”可以配置软件以保证系统中有编译所需要的函数库,然后把所有的源文件都编译成可执行的二进制文件,最后把二进制文件和配置文件安装到相应的目录里。
“install–m”安装“xferstats”程序,用于统计传输了多少文件。“touch”命令为xferstats在“/var/log”目录下创建日志文件。“chomod”把“xferlog”的权限改为只对超级用户“root”可读和可写。接着,我们为“in.ftpd”二进制文件创建符号链接。最后,用“strip”命令减小所有二进制文件的大小以提高wu-ftpd的性能。
清除不必要的文件
[root@deep]#cd/var/tmp
[root@deep]#rm-rfwu-ftpd-version/wu-ftpd-version.tar.gz
 “rm”命令删除所有编译和安装wu-ftpd所需要的源程序,并且把wu-ftpd软件的压缩包删除掉。