计算机学院
Linux原理与应用
课 程 论 文
姓名: 田中华 专业: 计算机08-04 学号: 310809010420
目录
一、Linux的产生 ……………………………………………………… 2 二、Linux的开发模式 …………………………………………………2 三、Linux的发展 ………………………………………………………3 四、Linux的主要应用领域 ……………………………………………4 五、Linux系统的安全策略 ……………………………………………5 六、Linux常用文件处理命令 …………………………………………6 七、Linux服务器配置 …………………………………………………13
八、个人总结 …………………………………………………………17
1
一、Linux的产生
Linux是一种计算机操作系统,通常被称为类Unix系统,这是因为Linux和Unix有着很深的渊源。
在计算机非常昂贵的年代,只有在大学或大型企业中才能够接触到计算机,人们非常希望多个用户能同时连接到一台计算机并同时使用它。于是,计算机科学家开始研究分时系统。分时系统是将CPU的运行时间分为很小的时间片,多个用户任务可以通过交替占有时间片的方式实现快速交互使用CPU。由于时间片是很短的一段时间,以至于每个用户任务、每个用户好像在独占CPU,独占整个计算机系统。在研究人员的不懈努力下,1969年,AT&T公司贝尔实验室开发出了Unix系统。
1986年,芬兰赫尔辛基大学的Andrew Tanenbaum教授为了给学生讲授《计算机操作系统》课程,开发出了Minix系统,这是Unix的一个变体。1991年,Andrew Tanenbaum教授的学生Linus Torvalds,由于对课堂上使用的Minix系统不太满意,于是开始在386 PC机上试着改进Minix系统。
1991年8月,Linus Torvalds在comp.os.minix新闻组贴上了以下这段话:“你好,所有使用minix的人,我正在为386(486)AT做一个免费的操作系统,只是为了爱好,……” Linus最初为自己的这套系统取名为freax,他将源代码放在了芬兰的一个FTP站点上供大家下载。该站点的管理员认为这个系统是Linus的Minix系统,因此建立了一个名为Linux的文件夹来存放它。于是,Linus的“爱好”就成了今天微软的头号对手,功能强大且价格低廉的Linux操作系统。
1993年底94年初,Linux 1.0终于诞生了!
Linux1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好,至今人们还在津津乐道于此。 Linux的 和 是一只名字叫做 的 ,Linux的是Linus Torvalds所有的。这是由于在 ,一个名字叫做William R. Della Croce的律师开始向各个Linux发布商发信,声明他拥有Linux 的所有权,并且要求各个发布商支付版税,这些发行商集体进行上诉,要求将该注册商标重新分配给Linus Torvalds。
二、Linux的开发模式
Linus于1991年10月5日发布了Linux的第一个版本Linux 0.0.2,并在网络上公布
2
了Linux核心程序的源代码,同时决定以GPL(大众所有版权,又称GUN通用公共许可证)的方式来发行传播,也就是说这个软件允许任何人以任何形式进行修改和传播。
随着网络的日益盛行,越来越多的技术高超的程序员加入到Linux的开发与完善中来。在这个过程中,无数的富有个性和开创性的程序员在没有计较任何酬劳的前提下,完全自发的加入到开发行列中来。一旦一个程序员完成了其中的部分程序,他便会立即将这个程序发表,并免费将它发给任何一个需要的人,而其他的一些程序员研究它后将会对它修正和改良,然后将它发表。这个过程周而复始,因此Linux的改进速度是最快的,同时它的稳定性也是非常高的。
所以,Linux并非仅由Linus一人开发,而是由全世界几百个程序员共同开发的,当然Linus为内核定了调子。这种集市型的开发模式促成了Linux系统的繁荣。可以说,Linux完全是一个热情、自由、开放的网络产物。
三、Linux的发展
Linux具有良好的兼容性和可移植性。大约在1.3版本之后,Linux开始向其他硬件平台上移植,包括号称最快的CPU——Digital Alpha。所以不要总把Linux与低档硬件平台联系到一块,Linux只是将硬件的性能充分发挥出来而已。Linux必将从低端应用横扫到高端应用!
为了使Linux变的容易使用,Linux也有了许多发布版本,发布版实际上就是一整套完整的程序组合。现在已经有许多不同的Linux发行版和各自的版本号,为了不产生混淆,我们先解释一些常提到的术语。当我们提到的Linux时,一般是指“Real Linux”,即内核,是所有UNIX操作系统的“心脏”。但光有linux并不能成为一个可用的操作系统,还需要许多软件包,编译器、程序库文件、Xwindow系统等等。因为组合方式不同,面向用户对象不同,所以就有了许多不同的Linux发行版。
越来越多的公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来。如今很多IT业界的大腕IBM、Intel、Oracle、Infomix、Sysbase、Corel、Netscape、CA、Novell等都宣布支持 Linux。商家的加盟弥补了纯自由软件的不足和发展障碍,Linux迅速普及到广大计算机爱好者,并且进入商业应用,成为打破某些公司垄断文化圈的希望所在。 Linux是爱好者们通过Internet协同开发出来的,当然它的网络功能十分强大。比如你可以通过ftp、nfs等来安装Linux,用它来做网关等等。随着Linux的发展,衍生出来的应用恐怕出乎Linus本人最初的预料。如有人用它来做路由器,有人来做嵌入式系统,有人来做实时性系统……。常有新手问Linux能做什么?其实它不象那些中看不中用的操作系统,不在于你用它能干什么,而在于你想干什么。
3
Linux是一个在PC机上运行的Unix系统。Linux系统具有最新 Unix的全部功能,包括真正的多任务、虚拟存储、共享库函数、即时负载、优越的存储管理和TCP/IP、UUCP网络工具等。Linux系统及其发展均符合Posix标准,其内核支持Ethernet、PPP、SLIP、NFS、AX.25、IPX/SPX(Novell)、NCP(Novell)等。系统应用包括tellnet、rlogin、ftp、Mail、gopher、talk、term、news(tin、trn、nn)等全套UNIX工具包。X图形库,包括xterm、fvwm、xxgdb、mosaic、xv、gs、xman等全部X-Win应用工具。商业软件有Motif、WordPerfect。中文工具已有Cxterm、celvis、cemasc、cless、hztty、cytalk、ctalk、cmail等,可以处理GB、BIG5、HZ文件。此外还有DOS模拟软件,可以运行DOS/Win下的软件。 在开始的时候,Linux只是个人狂热爱好的一种产物。但是现在,Linux已经成为了一种受到广泛关注和支持的一种操作系统。和其他的商用Unix系统以及 相比,作为自由软件的Linux具有低成本,安全性高,更加可信赖的优势。直到今天,Linux已经成为一个功能完善的主流网络操作系统。
四、Linux的主要应用领域
(1)Internet/Intranet:这是目前Linux用得最多的一项,它可提供包括Web服务器、Ftp服务器、Gopher服务器、SMTP/POP3邮件服务器、Proxy/Cache服务器、DNS服务器等全部Internet服务。Linux内核支持IPalias、PPP和IPtunneling,这些功能可用于建立虚拟主机、虚拟服务、VPN(虚拟专用网)等。主要运行于Linux之上的ApacheWeb服务器,1998年的市场占有率为49%,远远超过微软、网景等几家大公司之和。?
(2)由于Linux拥有出色的联网能力,因此它可用于大型分布式计算,如动画制作、科学计算、数据库及文件服务器等。?
(3)作为可在低平台下运行的Unix的完整(且免费)的实现,广泛应用于各级院校的教学和科研工作,如墨西哥政府已经宣布在全国的所有中小学配置Linux并为学生提供Internet服务。?
(4)桌面和办公应用。目前这方面的应用人数还远不如微软的Windows,其原因不仅在于Linux桌面应用软件的数量远不如Windows应用,同时也因为自由软件的特性使得其几乎没有广告支持(虽然StarOffice的功能并不亚于MSOffice,但知道的人并不多)。如今,通常可以通过两个途径获得Linux的发行版:①直接从Internet下载,例如RedHat站点:http://www.redhat.com;②更为方便的方法是购买Linux发行商推出的CD-ROM,这样不仅可以节省下载的时间和费用,还可以使用CD-ROM直接启动快速安装,并且CD-ROM上往往还包括非常庞大的应用软件集(多达数百兆),包括各种服务器软件、X-Window、桌面应用、数据库、编程语言、文档等,安装和使用都非常方便。
4
五、Linux系统的安全策略
1.Linux系统的用户账号策略
管理员的工作中,相当重要的一环就是管理账号。在管理 Linux 主机的账号时,一个最重要的方面就是确保每一个UID仅仅使用一次。
另外就是设置有限的登陆次数来预防无休止的登陆攻击,通过编辑/etc/pam.d/system-auth,添加下面两句可以设置账户最多连续登陆5次,超过5次账户将被锁定,只有管理员才能帮助解锁。 auth required pam_tally.so deny=5 account required pam_tally.so 2.密码策略要求
(1)口令时效和口令长度的设置。口令时效和口令长度是一种系统机制,用于强制口令在特定的时间长度后失效。对用户来说,这可能带来了一些麻烦,但是它确保了口令会定期进行更改,是一项很好的安全措施。默认情况下,绝大多数的Linux版本并没有打开口令时效,不过要想打开却非常简单。通过编辑/etc/login.defs,你可以指定几个参数,来设置口令实效和口令长度的默认设定: PASS_MAX_DAYS99999 PASS_MIN_DAYS 0 PASS_MIN_LEN5 PASS_WARN_AGE7
当设置口令时效的天数为99999时,实际上相当于关闭了口令时效。一般设定为90天或者更短时间来更改一次。PASS_MIN_DAYS参数则设定了在本次密码修改后,下次允许更改密码之前所需的最少天数。PASS_MIN_LEN是指密码设置的最小长度,一般定义为8位以上。PASS_WARN_AGE的设定则指明了在口令失效前多少天开始通知用户更改密码(一般在用户刚刚登陆系统时就会收到警告通知)。
(2)控制密码使用频率。控制适度的密码重用频率,也可以为密码的安全策略提供良好的保护,可以通过编辑/etc/pam.d/system-auth设定密码重用。一般设置重用密码前更换密码的最小次数为4次。
password required pam_unix.so remember=3 use_authtok md5 shadow 或者 password sufficient pam_unix.so remember=3 use_authtok md5 shadow。
5
六、Linux常用文件处理命令
Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用
file通过探测文件内容判断文件类型,使用权限是所有用户。 2.格式
file [options] 文件名 3.[options]主要参数
-v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。
-f name:从文件namefile中读取要分析的文件名列表。 4.简单说明
使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例
如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap
grap: English text
此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用
mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式
mkdir [options] 目录名
6
3.[options]主要参数
-m, --mode=模式:设定权限<模式>,与chmod类似。
-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例
在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数:
\\:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \\<:从匹配正则表达式的行开始。 \\>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 。:所有的单个字符。 * :有字符,长度可以为0。
7
正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。 4.应用实例
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\\{3 \\}\\.[0-0\\{3\\}\\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。 $grep '[0-9 ]\\{3 \\}\\.[0-0\\{3\\}\\' ipfile
补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\\q模式范围的应用及与之相对应的一些更加规范的模式。 dd 1.作用
dd命令用来复制文件,并根据参数将数据转换和格式化。 2.格式 dd [options] 3.[opitions]主要参数
bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 count=块数目:只复制指定<块数目>的输入数据。 ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。 obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。 4.应用实例
dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘: $ rdev vmlinuz /dev/hda
8
$dd if=vmlinuz of=/dev/fd0
上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。 find 1.作用
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。 2.格式
find [path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。 3.主要参数 [options]参数:
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。 -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录。 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。 -version:打印版本。
[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。 —name:支持统配符*和?。
-atime n:搜索在过去n天读取过的文件。 -ctime n:搜索在过去n天修改过的文件。
-group grpoupname:搜索所有组为grpoupname的文件。 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 -size n:搜索文件大小是n个block的文件。 -print:输出搜索结果,并且打印。 4.应用技巧
find命令查找文件的几种方法: (1)根据文件名查找
例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令: find / -name lilo.conf
find命令后的“/”表示搜索整个硬盘。 (2)快速查找文件
9
根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
find /etc -name smb.conf
这样,使用“快速查找文件”方式可以缩短时间。 (3)根据部分文件名查找方法
有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*'
输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。 (4) 使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。
find /etc -size +500000c -and -mtime +1 mv 1.作用
mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 2.格式
mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。 4.应用实例
(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中: $ mv /usr/cbu/ * .
(2)将文件cjh.txt重命名为wjz.txt: $ mv cjh.txt wjz.txt
10
ls 1.作用
ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。 2.格式
ls [options][filename] 3.options主要参数
-a, --all:不隐藏任何以“.” 字符开始的项目。
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者。
-b, --escape:以八进制溢出序列表示不可打印的字符。 --block-size=大小:块以指定<大小>的字节为单位。 -B, --ignore-backups:不列出任何以 ~ 字符结束的项目。 -f:不进行排序,-aU参数生效,-lst参数失效。
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。 -g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。 -i, --inode:列出每个文件的inode号。
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。 -k:即--block-size=1K。 -l:使用较长格式列出信息。
-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。
-m:所有项目以逗号分隔,并填满整行行宽。
-n, --numeric-uid-gid:类似-l,但列出UID及GID号。 -N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。 -Q, --quote-name:将项目名称括上双引号。 -r, --reverse:依相反次序排列。
-R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序。 diff 1.作用
diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。 2.格式
11
diff [options] 源文件 目标文件 3.[options]主要参数
-a:将所有文件当作文本文件来处理。 -b:忽略空格造成的不同。 -B:忽略空行造成的不同。 -c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。 -I:忽略大小写的变化。 -n --rcs:输出RCS格式。 cmp 1.作用
cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。 2.格式
cmp[options] 文件名 3.[options]主要参数
-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。 cat 1.作用
cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。 2.格式
cat [options] 文件1 文件2…… 3.[options]主要参数
-n:由第一行开始对所有输出的行数编号。 -b:和-n相似,只不过对于空白行不编号。
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。 4.应用举例
(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令: $ cat README
(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附
12
加到一个新文本文件File1 中: $ cat README INSTALL File1
(3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:
$ cat -b /etc/named.conf
七、Linux服务器配置
DNS服务器配置 DNS服务简介
DNS服务器管理域名空间是以区域为单位的。由单个域或者具有层次关系的多个子域组成的管理单位就是区域。一个或多个区域都可以邮一个DNS服务器来管理,多个DNS服务器可以管理一个区域。Bind是现在Linux系统中所使用的DNS服务器软件,可运行它的守护进程named来完成域名解析任务。利用这个软件,可建立以下3种类型的DNS服务器:
? 主域名服务器(Master Server)
主域名服务器是特定域中具有权威性的信息源,它是从由管理员创建的本地文件中加载域信息的,需要一整套的配置文件才可以配置Internet主域名服务器,这其中包括主配置文件(named.conf),正向域的区域文件、反向域的区域文件、缓存文件(named.ca)和本地回送文件(named.local)。一个域中只能有一个主域名服务器,我们可以通过创建一个或多个辅助域名服务器来达到分散域名解析任务的目的。
? 辅助域名服务器(Slave Server)
辅助域名服务器几乎具有主域名服务器的全部功能,是主域名服务器的备份。区域文件可以从主域名服务器移过来后存在辅助域名服务器,所以在配置Internet辅助域名服务器时不需要配置区域文件,只需要配置主配置文件、缓存文件和本地回送文件。
? 缓存域名服务器(Caching Only Server)
缓存域名服务器本身只运行域名服务器软件,不管理任何域。它从远程服务器获得域名服务器查询的回答,在缓存中保存,下次查询到相同信息的时候给与回答。配置Internet缓存域名服务器的时候只需要缓存文件就可以了。
Linux中配置DNS服务
13
域名服务器配置文件: 主配置文件 文件名 /etc/named.conf 说明 用于设置DNS服务器的做事情参数,并指定区域文件名及其保存路径 缓冲文件 /var/named/named.ca 是缓存服务器的配置文件,通常不需要手工修改 本地区域文件 /val/named/localhost.zone 用于将本地回送IP地址(172.0.0.1)转换为localhost名 本地回送文件 /val/named/named.local 用于将localhost名转换换为本地回送IP地址(172.0.0.1) 正向区域文件 反向区域文件
named.conf文件由多个配置语句组成,用来说明DNS服务器的全局参数。每个配置语句后有参数和配置语句块,配置语句块是用大括号括起来的。名配置子句中也有相应的参数,以分号结束。options语句和zone语句是named.conf文件中两个最常用的配置语句。全局配置选项用options语句来定义,在named.conf文件中只能有一个options语句,其格式为:
options { 配置子句; };
zone语句用来定义一个区,其中必须说明DNS服务器的类型、域名和区域文件名等信息,其基本格式为:
zone \域名\type子句; file子名; 其他配置子句;};
区域文件主要由若干个资源记录组成,用来定义一个区的IP地址和域名等信息。区域文件中可有以下类型的资源记录:
(1)SOA记录
SOA记录表示一个区的形如,在区域文件的所有记录中它总的最前面。每个区域文件都必须包含一个SOA记录,以此来表示哪些范围域名服务器所管理。其基本格式为:
域名
由named.conf文件指定 由named.conf文件指定 用于实现区域内主机名到IP地址的正向解析 用于实现区域内IP地址到主机名的反向解析 IN SOA 主机名 管理员电子邮件地址(
14
序列号 刷新时间 重试时间 过期时间 最小时间 )
(2)NS记录
NS记录用来指明区域中的DNS服务器主机名,是区域文件中必不可少的资源记录。它作用于与SOA记录相同的域,所以可以不用写出域名。例如若域名为Linux.com,则语句“IN
NS rhel3.Linux.com”和语句“Linux.com.
IN NS rhel3.Linux.com”的功能相同。
配置域名服务器
[例子]:配置一个域名服务器,其IP地址为197.165.38.49,现有域名jinn.net。 这台域名服务器的FQDN是Linux.jinn.net,别名为www.jinn.net。另外一台计算机,IP地址为197.165.38.2,FQDN为test.jinn.net。
配置一台主域名服务器,使之能够正反解析这两台计算机。 配置步骤如下:
1、配置每个计算机的IP地址与主机名[root@myLinux ~]# ifconfig eth0 197.165.38.49 up;[root@myLinux ~]# hostname Linux.jinn.net。用相同的方法为另外一台主机配置IP地址为197.165.38.2,主机名为test.jinn.net。 2、编辑主配置文件named.conf
[root@myLinux etc]# cd /var/named/chroot/etc [root@myLinux etc]# vi named.conf 添加如下语句:
options{directory \zone \ file \ allow-update{none;}; };
zone \ file \ allow-update{none;}; };
3、生成区文件
(1)开始编辑生成区文件:进入目录/var/named/chroot/var/named/;[root@myLinux ~]# cd
15
/var/named/chroot/var/named/。(2)编辑生成配置文件/etc/named.conf中指出的正反解析,域名数据库文件jinn.net.hosts与192.168.1.rev。[root@myLinux named]# vi jinn.net.hosts内容如下: $TTL 86400
@ IN SOA Linux.jinn.net. root.Linux.jinn.net.( 1997022700;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400) ;Minimum IN NS Linux.jinn.net. Linux IN A 197.165.38.49 test IN A 197.165.38.2 www IN CNAME Linux.jinn.net.
[root@myLinux named]# vi 192.168.1.rev内容如下: $TTL 86400
@ IN SOA Linux.jinn.net. root.Linux.jinn.net.( 1997022700;Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 86400) ;Minimum IN NS Linux.jinn.net. 1 IN PTR Linux.jinn.net. 2 IN PTR test.jinn.net. 至此,就完成了域名服务器的配置。
16
八、个人总结
自从听说linux系统以来,对于我来说,它总是那么什么,虽然成为了计算机学院的学生,但是以前linuc系统在我的印象里总是代表着计算机超级高手,全部用代码来搞定的那种,就像是dos那样的对着一个黑屏幕。
通过学习linux原理与应用这门课,让我知道了很多关于linux系统的知识,linux系统对我来说也不是那么的遥不可及了。我知道了linux系统的产生、发展、应用前景,同时还懂得了linux系统的简单使用方法。学会了linux系统中的简单的文件处理以及了解了shell编程的基本知识。为以后对linux的深入学习打下了基础。同时也问自己今后的工作和发展增添了一项基本技能。
总之,通过这段时间对linux系统的学习,让我获益良多,对以后的学习和工作有着极大的帮助。另外,各种操作系统和编程语言以及网络应用之间都有着千丝万缕的联系。学习linux系统的应用也让我对其他的系统应用以及编程语言有了更深入的理解和认识。最后,感谢老师这段时间孜孜不倦的讲解,您的课程对我的帮助很大,以后有机会我还会进一步对linux系统进行学习,提高我的专业知识水平。
17