《Debian服务器配置初步掌握》系列教程0.2.1版(1)-windos,2000,XP,2003,QQ ,word,excel,迅雷,pplive,暴风影音 .BT.千千静听等软件实用技巧| 学知识教程网,
设为首页|收藏学知识 |改版意见收集|智能DIY搜索|加入我们|网站地图
当前在线人数:8770
文化共享 好教程 易学习 新资讯
Linux新手入门

《Debian服务器配置初步掌握》系列教程0.2.1版(1)

2007-01-19 源自:学知识 网友评论 共有( )条评论! 内容报错
本文章地址:http://soft.xuezhishi.net/OS/Linux/xsrm/2007-01-19/15677.html [将本信息与朋友分享!]

                     


作者:kanaka [冷罡华]

联系: kanaka@yeah.net,leng@haier.com

版本:0.2.1

版权:GPL

最后修改:2002年11月26日


总目录

更新记录

◆ 2002年11月26日,0.2.1版。

   修改了第一章和第五章的一些错误,感谢afta兄和ckf兄,他们在linuxsir.com论坛上给我提出修改意见。

◆ 2002年11月15日,0.2版。

   修改了一些错误;去掉了每章的版本号信息,统一全文版本;加上了总目录和各章的目录,方便阅读。

◆ 2002年11月13日,0.1版全文写作完毕。


总目录


前 言

第一章 在Debian上配置 A pache+ M ySQL+ P HP

第二章
在Debian上用 W u-ftpd配置FTP服务器


第三章 在Debian上用 E xim配置邮件服务器

第四章 在Debian上配置 S amba服务器


第五章 在Debian上用 B ind配置DNS服务器



















《Debian服务器设置入门》系列教程之前言


前 言


1 准备工作


2 一些废话


3
系列文章


4 沟通





1 准备工作


1.1 你需要先安装Debian 3.0(Woody)基本系统,我建议你仅仅安装基本系统就可以了,保持一个清洁的Debian。然后你运行一下apt-get
update,以便系统生成可以安装的软件的列表。

   建议你保留你的计算机名字为Debian,域名为test.com。我就是这么做的,所以我的文章里面也会这么写,所以,如果你的计算机也做同样设置,看起文章来会省点劲儿。


1.2 最起码,你需要掌握这几条命令的用法:apt-get
install / apt-get remove / apt-cache search 。




2 一些废话



2.1 由来



   我出生在农村,家里穷,头一次接触计算机是1996年,那是大二的下学期,我们专业上开了Basic语言的课程。1998年我毕业了,这年冬天,我第一次接触了GNU/Linux。那时接触的是TurboLinux。第一次接触Debian,是在2002年10月。相见恨晚呐!这是我见过的最优秀的发行版!完全的可定制!给你充分的自由!

   由于Debian的特性,使得安装和配置软件极为简单。然而,网络上的众多教程,很少有基于Debian作介绍的,对于初学者来说,他们需要基于Debian写的教程;更重要的原因是,我遇到了一个叫做linuxsir.com的论坛,我由衷的说,这是我在国内见过的最优秀的论坛!大家努力营造了一个非常好的学习气氛,它能连续不断得给我感动。当我看到众多Debian的初学者心急如焚时,我就决定,写一些教程,遵循GPL,以我微薄之力,回馈linuxsir.com给我的帮助,并一同感谢全世界为了Debian默默耕耘的朋友,于是我就开始写了。

   由于接触Debian时间太短了,难免疏漏,请高手们不要客气,给我指出来,以便我成长,呵呵。


2.2 本文的组织方法



   我将力求用最简洁的语言,说明我想说的东西。我很反感那些晦涩的文章。但是为了照顾初学者,我会写得尽量详细。



2.2.1 控制台命令



   在Linux控制台上输入的命令,用黑色背景、 红色文字 表示;系统回显的内容用 灰色 ,这样最接近Linux控制台的颜色。在MySQL控制台里面,输入的命令用 紫色 ,MySQL回显的内容用 灰色 ,以示区别。像这样:




$

cp

cp: missing file arguments

Try `cp --help' for more information



$ mysql test



mysql> select * from test.table1

ERROR 1146: Table 'test.table1' doesn't exist

mysql>


  另外,初学者注意:

   用$符号开头的,是以普通用户身份执行的命令;

   用#符号开头的,是以root身份执行的命令。

   当然,在默认情况下,凡是普通用户可以执行的命令,root都可以执行。



2.2.2 配置文件



   配置文件的内容,将用浅黄色背景,以免混淆。像这样:




deb
ftp://202.118.66.14/debian sid main non-free contrib

deb-src ftp://202.118.66.14/debian sid main non-free contrib



deb http://security.debian.org/ stable/updates main contrib non-free


  上面列出了我所使用的sources.list,这个站点是debian在中国的某所大学的镜像,非常快。另外大家注意我用的是sid,如果你用stable,可能我们下载得到的软件的版本就会不同。






3 系列文章




   本文是一个系列,将包括下面的部分:


  第一章 Web服务器+数据库服务器

   第二章 FTP服务器

   第三章 邮件服务器

   第四章 Samba服务器

   第五章 域名服务器



4 沟通



   有任何问题,请与作者联系,leng@haier.com,或者kanaka@yeah.net。




《Debian服务器设置入门》系列教程之第一章 :Web服务器+数据库服务器

第一章 在Debian上配置 A pache+ M ySQL+ P HP4


本章目录



1 选择Apache+MySQL+PHP4


2 安装


3 配置


4 综合测试



5 结束语





1 选择Apache+MySQL+PHP4



   你可能会问我:为什么不选择别的软件,而非得选择Apache+MySQL+PHP4的组合?呵呵,我要告诉你,著名的Free
Lamp组合,说的就是Linux/Apache/MySQL/PHP/Perl/Python,你可以到www.freelamp.com上面去看看。PHP在互联网上的应用,正成燎原之势。如果作Web开发,在我看来,别无选择,就是PHP。详细情况可以到www.php.net上面去了解。MySQL非常轻便,性能卓越。Apache就不必多说了,互联网上没有几个Web站点不用它。



2 安装



   在Debian上安装软件,真的是非常简单。不需要configure,不用make,不用make
install,遍布全球的Debian的工作人员已经为你做好了一切。



   你可以一口气把这些软件全部装上:




# apt-get
install apache php4 php4-gd php4-mysql mysql-server mysql-client


  其中,php-gd是一个非常棒的图形库,如果你不需要使用php生成动态图片,就不用装。

   这时,系统会自动列出一些相关的软件,然后问你是不是要继续(说Debian棒,这是其中一点:自动查找软件关联,自动补充安装)——Debian给你一次反悔的机会,如果你现在不想装了,那么按n,就退出来了。

   当然我们在这里要按回车,继续安装。现在Debian会到你的sources.list里面指定的站点去下载这些软件。下载完后,会自动进行配置,配置过程中会征求你的意见,问你几个问题。

   比如现在他就问你:你要在计算机启动时就运行MySQL吗?当然选Yes了,否则每次要用的时候才启动,怪麻烦的。

   又问你:你想运行apacheconfig脚本吗?默认是N,不过我们输入Y让它替我们配置一下。配置完后,问你是否保存配置,当然是了,呵呵。然后,他会问你是否要启动Apache,好,启动它。

   接着,系统会自动配置PHP。由于你选择了php-gd和php-mysql,他会问你是否把gd.so和mysql.so的支持写入php.ini,回答是。你看,Debian聪明吧。



3 配置



3.1 配置Apache



3.1.1 提供php支持



Apache刚装上的时候不提供php支持。当你点击有.php脚本的连接,浏览器会下载这个脚本:-(

   修改/etc/apache/httpd.conf,以便提供php支持。运行:




#
nano /etc/apache/httpd.conf


  顺便提一下,我非常喜欢这个叫做nano的编辑器,它很容易上手。

   使用nano的ctrl+w功能找到下面这一行:




#
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so


  把这一行前面的井号去掉,以便apache加载这个libphp4.so模块。

   然后,配置默认页,找到:




DirectoryIndex
index.html index.htm index.shtml index.cgi


  改成:




DirectoryIndex
index.php index.php3 index.html index.htm index.shtml index.cgi


  然后再加上.php3扩展名的支持和php源码支持,找到:




#

# And for PHP 4.x, use:

#

#AddType application/x-httpd-php .php

#AddType application/x-httpd-php-source .phps


  把后面两行修改成:




#

# And for PHP 4.x, use:

#

AddType application/x-httpd-php .php .php3

AddType application/x-httpd-php-source .phps


3.1.2
修改默认字符集



   让Apache把简体中文作为默认的字符集。找到这一行:




AddDefaultCharset
on


  修改成:




AddDefaultCharset
gb2312


  好,Apache就配置完了,按ctrl+o保存后,再按ctrl+x退出nano。

   为了使我们的修改生效,需要重新启动Apache,运行:




#
apachectl restart


  apache 1.3 提供了这个apachectl工具,但是2.0就没了。

   另外,注意一个技巧:Debian提供的服务器软件包,几乎都会提供一个脚本用于启动/终止/重新启动这个服务。脚本全部放在/etc/init.d/下面。

   比如Apache,可以通过下面的命令控制:




#
/etc/init.d/apache restart


  其它的服务也可以如此操作。


3.2
MySQL配置



3.2.1 修改MySQL的口令



  由于MySQL默认没有口令,为了安全起见,一定要修改你的口令!

   先来看看你的mysql是不是真的没有口令:




$

mysqladmin version




   如果你能够看到mysql的版本信息,证明目前MySQL没有口令。

   好,运行mysqladmin password xxxxxx 修改口令:




#
mysqladmin password xxxxxx


  这里xxxxxx是你的新口令。

   现在你需要运行 mysqladmin version --user=root --pass,然后输入口令,才能查看版本号等信息。

   注意,上面命令中的--user=root --pass这一部分,可以简写为-u
root -p。我们来测试一下,看口令是否生效:




#

mysqladmin version -u root -p

Enter
password:


3.2.2
打开3306端口监听



   这项工作要慎重。处于安全考虑,默认情况下,Debian把3306端口关闭了。因为,不少黑客通过它来攻击你的系统。如果你不通过其他机器来存取数据库,那么不要打开这个端口。

   修改/etc/mysql/my.cnf,找到:




skip-networking


  把它注释掉:




#
skip-networking


3.2.3
修改默认字符集



   让MySQL把简体中文作为默认的字符集。编辑/etc/init.d/mysql,找到这一行:




/usr/bin/safe_mysqld
> /dev/null 2>&1 &


  改成:




/usr/bin/safe_mysqld
> --default-character-set=gb2312 > /dev/null 2>&1 &


  好,重新启动MySQL:




#

/etc/init.d/mysql restart




3.3 PHP配置


  主要是要修改php的默认字符集,把它改成简体中文。编辑/etc/php4/apache/php.ini:




#
nano /etc/php4/apache/php.ini


  找到 ;default_charset = "iso-8859-1"这一行:




;default_charset
= "iso-8859-1"


  把前面的分号去掉,并改成:
default_charset = "gb2312"




default_charset
= "gb2312"


4 综合测试



   好了,安装完了,我们来测试一下。

   这一部分,高手完全可以略过。我主要考虑到初学者,才写了这些。



4.1 建立一个数据库



  下面我们来创建一个简单的数据库,这个库里面只有一张表,叫做user,用来存放用户名/明文密码/出生日期/激活状态。





#
mysql -u root -p

Enter password:


mysql> CREATE DATABASE
mytest;

Query OK, 1 row affacted (0.00 sec)


mysql> USE
mytest;

Database changed


mysql>

CREATE TABLE user (

  -> username varchar(16) NOT NULL default '',

  -> password varchar(16) binary NOT NULL default '',

  -> birthday date NOT NULL
default '1975-12-31',

  -> actived int(1) NOT NULL default
'0',

  -> UNIQUE KEY username (username)

  -> );

Query OK, 0 row affected (0.00 sec)


mysql> INSERT INTO user VALUES
('kanaka','kanakapswd','1975-09-18',0);

Query OK, 1 row affected (0.01 sec)



mysql>
INSERT INTO user VALUES
('atfa','atfapswd','1977-10-30',1);

Query OK, 1 row affected (0.00 sec)



mysql>
quit

Bye





  注意,默认情况下,所有的数据库放在/var/lib/mysql/下面。每个数据库占一个目录,目录名就是数据库名。你创建数据库的时候,系统自动就把它放在这个目录下面了。



4.2 编写一个php脚本




   下面我们来编写一个简单的php脚本,来调用上面数据库里面的内容。文件名比如叫做mytest.php。





<?php



$dbname='mytest';

$tablename='user';

$page=0;

$rowperpage=20;



mysql_connect("localhost", "root", "您的密码");



//下面这个viewData函数,是自己编的,用来显示数据

//从某种程度上讲,本程序起关键作用的就这么一句:

viewData($dbname,$tablename,$page,$rowperpage);





////////////////////////////////////////////////

//

//
往下仅仅是定义了两个函数而已,你可以不去看他
///

//

////////////////////////////////////////////////





//定义一个函数,用来返回查询状态

function echoQueryResult() {

global $queryStr, $errMsg;



if( $errMsg == "" ) $errMsg = "成功";

if( $queryStr != "" ) {

echo "<table cellpadding=5>/n";

echo "<tr><td>查询:</td><td>$queryStr</td></tr>/n";

echo "<tr><td>结果:</td><td>$errMsg</td></tr>/n";

echo "</table><p>/n";

}

}





//定义一个函数,用来显示数据

function viewData($dbname,$tablename,$page,$rowperpage) {

global $mysqlHandle, $PHP_SELF, $errMsg, $orderby;



echo "<h2>下面是您所查的数据:</h2>/n";



$queryStr = stripslashes( $queryStr );

if( $queryStr == "" ) {

$queryStr = "SELECT * FROM $tablename";

if( $orderby != "" )

$queryStr .= " ORDER BY $orderby";

}



$pResult = mysql_db_query( $dbname, $queryStr );

$errMsg = mysql_error();



$GLOBALS[queryStr] = $queryStr;



if( $pResult == false ) {

echoQueryResult();

return;

}

if( $pResult == 1 ) {

$errMsg = "成功";

echoQueryResult();

return;

}



echo "<hr>/n";



$row = mysql_num_rows( $pResult );

$col = mysql_num_fields( $pResult );



if( $row == 0 ) {

echo "没有数据!表格是空的。";

return;

}



if( $rowperpage == "" ) $rowperpage = 20;

if( $page == "" ) $page = 0;

else $page--;

mysql_data_seek( $pResult, $page * $rowperpage );



echo "<table cellspacing=1 cellpadding=2>/n";

echo "<tr>/n";

echo '<th bgcolor="#FFCC66">';

echo "用户名/n";

echo "</th>/n";

echo '<th bgcolor="#FFCC66">';

echo "口令/n";

echo "</th>/n";

echo '<th bgcolor="#FFCC66">';

echo "出生日期/n";

echo "</th>/n";

echo '<th bgcolor="#FFCC66">';

echo "是否激活/n";

echo "</th>/n";

echo "</tr>/n";





for( $i = 0; $i < $rowperpage; $i++ ) {

$rowArray = mysql_fetch_row( $pResult );

if( $rowArray == false ) break;

echo "<tr>/n";

$key = "";

for( $j = 0; $j < $col; $j++ ) {

$data = $rowArray[$j];



$field = mysql_fetch_field( $pResult, $j );

if( $field->primary_key == 1 )

$key .= "&" . $field->name . "=" . $data;



if( strlen( $data ) > 30 )

$data = substr( $data, 0, 30 ) . "...";

$data = htmlspecialchars( $data );

echo '<td bgcolor="#99CCCC">';

echo "$data/n";

echo "</td>/n";

}



echo "</tr>/n";

}

echo "</table>/n";

echo "<hr>";

//$PHP_SELF



echo "<font size=2>";

echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage' method=post>";

echo "<font color=green>";

echo "第".($page+1)."页/共".(int)($row/$rowperpage+1)."页";

echo "</font>/n";

echo " | ";

if( $page > 0 ) {

echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page).'&rowperpage='.$rowperpage;

if( $orderby != "" )

echo "&orderby=$orderby";

echo "'>上一页</a>/n";

} else

echo "上一页";

echo " | ";

if( $page < ($row/$rowperpage)-1 ) {

echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page+2).'&rowperpage='.$rowperpage;

if( $orderby != "" )

echo "&orderby=$orderby";

echo "'>下一页</a>/n";

} else

echo "下一页";

echo " | ";

if( $row > $rowperpage ) {

echo "<input type=submit value='跳到第'>/n";

echo "<input type=text size=4 name=page>页";

}

echo "</form>";





echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage' method=post>";

echo " 目前每页显示记录数为".$rowperpage."条,您可以";

echo "<input type=submit value='改为'>";

echo "<input type=text size=4 name=rowperpage>条/页";



echo "</form>/n";

echo "</font>/n";

}





?>


  我好长时间没写程序了,连php的语法都快忘了,呵呵。我去年给公司的生产线编写了一个应用,上面就是摘抄下来的,我本来想写一个最简单的程序在这里,但是我还是把两个函数保留在里面了,为的是让初学者有个借鉴,呵呵。




4.3 测试




   把这个mytest.php复制到/var/www下面,在你的浏览器里面,访问这个mytest.php,就会看到数据库的内容。

   之所以把mytest.php放到/var/www下面,是因为,默认情况下,Apache的httpd.conf里面定义了把/var/www作为文档根目录。

   初学者注意,在linux控制台下面有好几款浏览器,w3c,lynx,links等等。三个各有优劣,都不完美。个人感觉links比较适合初学者,因为按下esc键之后有菜单出现。





5 结束语




   本文是《Debian服务器设置入门》系列教程之第一章,建议您按照顺序阅读,有问题可以和作者 kanaka 联系。






《Debian服务器设置入门》系列教程之第二章:FTP服务器

第二章
在Debian上用 W u-ftpd配置FTP服务器


本章目录


1 开场白


2 选择wu-ftpd


3 安装


4 配置


5 测试


6 TODO



7 结束语


8 参考文献







1 开场白




   在五年之前,我还觉得Ftp这个东西很神秘。那时候,我身边的大部分人,甚至以为http就是互联网的全部。 我们从网站下载文件,用的大多也是http连接。但是,事实上,ftp (File
Transfer Protocol,文件传输协议) 这个服务已经存在很长时间了,如果要提供文件下载,除了使用http的方式连接外,我们完全可以提供ftp服务,这样可以节省一些服务器资源,比如连接数什么的。ftp是专门设计用来在两台电脑之间传输数据的,可以避免太多的远端执行。尤其是,当传输的文件比较大时,ftp会比http节省资源。另外,ftp可非常方便地上传文件,而http则没有那么方便快捷。



2 选择wu-ftpd



   用apt-cache search
命令看一下,都有什么ftp服务器可以选择:




# apt-cache search ftpd


  你会发现,Debian为我们制作了很多个ftpd服务器软件包,包括atftpd、bsd-ftpd、ftpd、oftpd、muddleftpd、proftpd、twoftpd、vsftpd、wu-ftpd等等。其中应用最广泛的,应该是wu-ftpd了,这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,它是当初由华盛顿大学wuarchive.wustl.edu开发出来的,是一个以效率以及稳定性为考量的程序。wu-ftp如此流行,一个重要的原因是因为它强大的功能,例如:

   ◆ 可控制不同网域的机器对 FTP服务器的存取权限和访问时段。

   ◆ 使用者在下载文件时,可自动对文件进行压缩或解压缩工作。

   ◆ 可以记录文件上传或下载的过程。

   ◆ 可以限制最高访问人数,以维持系统的最佳运行效率。

   ◆ 可显示相关的信息,以便用户了解当前的接收状态。

   ◆ 可暂时关闭FTP服务器,以便系统维护。

   目前Debian提供的wu-ftpd版本是2.6.2。好,我们就选择这个wu-ftpd了!



3 安装



   安装很简单,用下面的命令安装:




# apt-get install wu-ftpd


  它会问你,你想设置一个匿名ftp账号吗?输入y,回车。

   接着让你输入ftp根目录,默认是/home/ftp,我们就用默认的吧。

   然后它问你,你想创建一个目录,用来让用户上传文件吗?输入y,创建一个。

   安装程序会创建一个新的用户ftp,并把这个用户加入到一个新创建的组ftp中去。

   然后它会说:




Anonymous FTP users will
only see UID and GID numbers,instead of names, because the libnss_files.so
library hasn't installed.



It is not installed by default, since there is no easy way to find out
what version we need to install.



If you want to install it manually, it should be palced in
/home/ftp/lib,owned by root, and with permissions of 444 (r--r--r--)


  (它说由于无法判断所需的版本,libnss_files.so没有安装,要手工安装的话,到/home/ftp/lib去找。这块我还没捣鼓明白,还请高手赐教)。这里需要对初学者说明一下,系统从/etc/passwd这个文件里面读取资料,得到UID和GID,来决定用户对文件的存取权限。一会儿我们会讲到,在ftpaccess这个配置文件里,可以为某些UID的用户或者某些GID的组设置权限。



4 配置



   其实,在安装完之后,不需要做任何配置,我们的ftp服务器已经可以使用了。如果你跟我一样是个急性子,在进行配置之前你就可以尝试登录了。这时,Debian上的普通用户,还有匿名用户都可以访问它,也可以向incoming目录上传文件,只不过看不到已经上传的文件。但是我们仍然需要做一些配置,因为我们需要定制自己的安全性。



为了确保提供FTP服务不会给我们的系统带来安全隐患,我们首先要采取以下措施:




#
chmod 555 /home/ftp


# chmod 111 /home/ftp/bin/*


# chmod 555 /home/ftp/lib/*


# chmid 444 /home/ftp/etc/*


4.1 配置文件介绍



   wu-ftpd的配置文件放在/etc/wu-ftpd下面,主要有:



   ftpaccess —— 这个是wu-ftpd的主配置文件,控制存取权限

   ftpconvertions —— 这个文件定义了文件压缩/解压缩转换方案

   ftpservers —— 用来设置多个IP地址和域名,以对应到不同的虚拟主机

   ftpusers —— 凡是写入这个文件里面的用户,都不能连接ftp服务器

   msg.denu —— 拒绝访问时,显示给用户的信息

   msg.nodns —— 当DNS查询失败时,显示给用户的信息

   msg.toomany —— 当连接数过多时,显示给用户的信息

   pathmsg ——
当用户使用了非法路径/文件名时,显示给用户的信息

   welcome.msg ——
当用户建立连接时,显示给用户的欢迎信息



   在/usr/share/doc/wu-ftpd/examples下面,有一些配置文件的样本,大家可以参照一下。



4.2 修改/etc/wu-ftpd/ftpaccess配置



   这个文件是wu-ftpd的主配置文件,许多重要的选项都包含在这里面,比如,要想让Debian上的用户可以访问,就必须在这个文件里面的Class段落里面做出定义。

   下面我们按照ftpaccess文件的顺序,一段一段地介绍。平常不大用的,或者我不懂的,就不介绍了:-),要不然篇幅会非常大。



4.2.1 管理员的email地址




# 这个不多说了



email ftpadmin@misconfigured.host


4.2.2 UID/GID设置




# 设置哪些UID/GID可以、不可以使用FTP服务。这里的%-99我没搞明白,请高手指教!

#deny-uid %-99

#deny-gid %-99

#allow-uid ftp ftpadmin

#allow-gid ftp ftpadmin


4.2.3 登录失败数




#
下面设置登录5次失败后,断开连接



loginfails 5


4.2.4 目录限制




#
除了用户自己的根目录,让用户看不到别的东西。这个很关键!

#
你可以在修改这项之前先登录ftp服务器看看,然后去掉了这个#之后再登录看看,大不一样哦



restricted-uid kanaka


4.2.5 不可执行S99vE GROUP/S99vE GPASS




# private决定了用户是否可以执行S99vE
GROUP/S99vE GPASS命令

# 用这两个指令切换到/etc/ftpgroup的群组。一般而言我们不会用到这个功能,以避免安全漏洞。

#private no


4.2.6 定义 用户类别—— class



由class定义的用户和IP地址才能够登录进来。 FTP服务器上有三种类型的使用者,分别是“real”——表示在该FTP服务器上有合法帐号的用户;“guest”——表示另行定义的某些使用组的使用者;“anonymous”——权限最低的匿名用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不同的使用者设置不同的存取权限。但是,只有三种定义一般是不够的,我们可以根据class的语法定义更多的控制命令。



   语法是:




class <class 名称> <种类> <用户地址> [<用户地址>……]


  其中:<class 名称>则可自行设定,<种类>就是上面说的三种,<用户地址>是指ftp上来的用户会用到的IP地址。

   以下是一些例子:




#
下面这一行时系统默认的,它定义了一个名为all的class,包含三种人,允许所有IP地址的连接



class all real,guest,anonymous *



# 下面这个叫做local的class说,只有real的用户可以从本机机器连上来



class local real localhost loopback



# 下面这个叫remote的class,包含了从任何地方上来的guest和anonymous用户,但是real用户不算



class remote guest,anonymous *



# 下面这个叫rmtuser的class包含了从外面来的(除了example.com)真实用户



class rmtuser real !*.example.com


4.2.7
为各个类别的用户设置最大连接数




#
可以为每一个类别定义最大连接数,并显示不同的错误信息。下面允许30个连接。



limit all 30 Any /etc/wu-ftpd/msg.toomany


4.2.8 设置readme文件




# readme命令:指定用户登录或进行其它操作(如更换目录)时FTP服务器提示用户阅读的文件。



readme README* login

readme README* cwd=*


4.2.9 是否使用压缩




# 下面定义的允许从local和remote登录的机器在传输文件时,

# 可以执行compress压缩文件或使用tar命令将多个文件打包成一个文件。



compress yes local remote all

tar yes local remote all


4.2.10 记录日志




#
如果去掉前边的注释符号,它就会记录相应的信息。

#log commands anonymous,guest,real

#log security

#log syslog

log transfers anonymous,guest,real inbound,outbound


4.2.11 超时设置




#
下面设置:如果超过30秒没有动作,就断开anonymous的连接



limit-time anonymous 30


4.2.12 一些命令的权限




rename no anonymous # rename
权限?

delete no anonymous # delete 权限?

overwrite no anonymous # overwrite 权限?

chmod no anonymous # chmod 权限?

umask no anonymous # umask 权限?


4.2.13 匿名用户上传权限




#
全给他们加上井号,不让匿名用户上传文件



#upload /home/ftp * no

#upload /home/ftp /pub/incoming yes ftp daemon 0666 nodirs


  由于ftpd是被inetd调用的,所以,我们修改了配置文件后,不需要重新启动wu-ftpd。

   对于普通ftp应用,修改一下上面这个文件就足够了。如果你还有更高的要求,就继续往下看。

 
http://soft.xuezhishi.net/OS/Linux/xsrm/2007-01-19/15677.html

评论 点击查看
 


加入QQ群:35714363 一起成长
我要加入更多群 我有意见要反映
软件教室

学知识原创教程下载

本类最近更新
阅读排行

其他相关信息