《Linux操作系统》第2版完整习题答案-电子工业出版社
更新时间:2024-01-11 21:06:01 阅读量: 教育文库 文档下载
- linux操作系统入门推荐度:
- 相关推荐
参考答案
第1章
1. 思考题
(1)C语言。
(2)UNIX系统的特点有以下几点:(1)多任务;(2)多用户;(3)并行处理能力;(4)设备无关性;(5)工具;(6)错误处理;(7)强大的网络功能;(8)开放性。
(3)Linux是一个功能强大的操作系统,同时它是一个自由软件,是免费的、源代码开放的,可以自由使用的类UNIX产品。其创始人是Linus。
(4)Linux操作系统的诞生、发展和成长过程始终依赖着的重要支柱有以下几点:(1)UNIX操作系统;(2)MINIX操作系统;(3)GNU计划;(4)POSIX标准;(5)Internet网络。
(5)Linux系统的特点有以下几点:1)自由软件;2)良好的兼容性;3)良好的界面;4)丰富的网络功能;5)支持多种平台。
(6)常见的Linux的发行版本有以下几种:1)Red Hat Linux;2)Caldera OpenLinux;3)SuSE Linux;4)TurboLinux;5)红旗Linux;6)中软Linux。
(7)略。
2. 单项选择 (1)-(5):BCCBA
第2章
1. 思考题
(1)Linux系统有哪些运行级别?其含义为何?
答:Linux/Unix有7个运行级或运行状态,定义如下(参见/etc/inittab),具体级别与含义如下:0:关闭系统;1:单用户模式;2:多用户使用模式,但没有NFS功能;3:完全多用户模式;4:没有使用,用户可自定义;5:完全多用户模式,且支持X-Windows(默认运行级);6:重新启动。
(2)Linux系统下经常使用的两种桌面环境是什么? 答:GNOME他KDE
(3)什么是X-Window系统?它有什么特点?
答:图形界面(X-Window)就是在Linux操作系统中提供图形化用户界面(GUI),支持的视窗系统,也被称为X。X-Window的工作方式跟Microsoft Windows有着本质的不同。MS Windows的图形用户界面(GUI)与操作系统本身紧密结合,成为操作系统的一部分;而X-Window并不是操作系统的一部分,它实际上只是在Linux操作系统上面运行的一个应用程序,可以不启动。换句话说,MS Windows的图形支持是内核级的,而Linux的X-Window则是应用程序级的。
X-Window的一个主要的特性就是它采用了“客户端-服务器”模式。其组成由X服务器(X Server)、X客户端(X Client)和通讯通道(Comunication channel)三部分组成,XServer和XClient可位于同一台主机上,也可独立地运行于同网络上的不同主机上。
1
(4)试比较X-Window系统与MS Windows系统有何不同? 答:参见(3)
(5)何谓虚拟桌面?如何将一个运行的应用程序从一个虚拟桌面移动到另一个虚拟桌面?
答:默认情况下,当用户从图形界面登录成功后,系统为用户4个工作区,这4个工作区就可以理解为4个虚拟桌面,它们依次排列底部面板内。默认时用户工作在第1个工作区,用户可点按其它工作区实现工作区的切换。在每个工作区内,用户都可运行相同或不同的应用程序。
(6)如何进行本地登录和注销?
答:用户可从图形界面或字符界面登录,但需要提供正确的用户名和密码。 (7)默认情况下,超级用户和普通用户的登录提示符分别是什么? 答:#和$
(8)如何正确地关闭和重新启动Linux系统?
答:用户可从图形界面或字符界面关闭和重启系统,参见2.3(pp17-18)。 (9)如何获得命令帮助?man命令的作用是什么?
答:Linux的帮助资源丰富,常见的有man、info、yelp和网络资源等,用户可以根据需要使用它们。
man(manual)是传统UNIX系统的在线手册页,通过它用户可以获得在线帮助。使用man可以获得相关主题的帮助信息。
(10)如何获得Linux文档?
答:第(9)题中的帮助信息都是Linux的文档资源,除此之外还有软件包项目文档、HOWTO、LDP文档等,可以通过系统或系统的网站获得并安装这些资源。
2. 单项选择 (1)-(5) BCADD
第3章
1.思考题
(1)shell的基本功能有哪些?
答:功能有6:命令解释执行、文件名替换、I/O重定向、通讯管道建立、系统环境设置和shell编程。
(2)Linux系统中的主要的目录有哪些?各有什么作用? 解:请参见p35。
(3)工作目录及其父目录可分别用什么表示? 答:.和.. (4)在如图3-1所示的目录结构中,若处在usr1目录中的用户要访问include目录中的stdio.h,可以采用什么样的路径,对应的带有路径的文件名是什么?
答:绝对路径和相对路径,分别是/usr/include和../../usr/include
(5)Linux系统中常用的通配符有哪些?试举例说明它们的作用。 解:参见表3-1及其说明。
(6)常用的shell环境变量有哪些?怎么查询和设置环境变量?
答:.常用环境变量参见3.1.6 1;可使用env或set显示或设置环境变量。
(7)什么是输入/输出重定向?管道的功能是什么?试举例说明如何使用它们。 解:参见§3.1.7和§3.1.8。
2
(8)shell中的引号有哪几种?各有什么作用?试举例说明之。 答:在shell中有三种引号:单引号('),双引号(")和反单引号(`),前两者用于变量定义,后者用于命令替换。具体作用和示例请参见P41 §3.1.9 1。
(9)什么是参数替换?什么是命令替换?试举例说明如何使用它们。 解:参见P41 §3.1.9
(10)shell的种类有哪些? 解:参见P42-43 §3.1.11。 2.单项选择
(1)-(5) DAABA 3.综合题
(1)试述Linux的shell启动过程。 解:参见P69 §3.3.1及图3-2.
(2)试述在Linux系统中如何进行日期和时间管理。在图形界面下可以实现时间和日期管理吗?若能,如何做?
答:可以从图形或字符界面对日期和时间进行管理。字符界面下的命令为date,具体用法参见P58-60;图形界面下也可方便地实现日期和时间管理,方法是“System”->“Administration”->“Date & Time”打开管理图面。通过“Date & Time”选项卡可以设置日期和时间;通过“Time Zone”选项卡可以设置时区;通过“Network Time Protocol”可以激活网络时间协议,并设置相关的选项。
(3)在UNIX/Linux系统中有些操作是有副作用的,比方cp,mv和rm等,应该如何避免?
答:可以使用备份功能。对于cp和mv等提供备份功能的命令可以使用它们的备份功能(选项-b/--backup);对于没有提供备份功能的命令,可以使用交互功能增加用户确认的机会,也可以在操作前,手工进行备份。
第4章
1.思考题
(1)为了提高系统的安全性,对用户密码应如何管理?
解:参见P78 §4.5.1。除此之外,对于任何涉密单位都要健全的密码管理制度,并严格按制度执行。
(2)叙述文件/etc/passwd、/etc/shadow和/etc/group文件的作用及其结构。 解:参见P72-73。
(3)为何要上锁一个用户?如何锁定一个用户?当需要时如何解锁?
答:当一个真实用户较长时间离开工作岗位,但还要再回来继续工作时,可以在其离开后,将所用用户上锁,待其回来后,再将用户解锁,供其继续使用。这样可以避免在用户离开期间,其它人冒名使用。上锁一个用户,比如zh3,可以使用命令
passwd -l zh3 或 usermod -L zh3 解锁用户可以使用命令 passwd –u zh3 或 usermod -U zh3
(4)如何在删除一个用户时也同时删除它的家目录,在做操作时应注意些什么问题? 答:在删除用户时使用-r选项可以在删除用户的同时,删除用户家目录。但一般不必要这样做,可以在删除用户时暂不删除其家目录,因为家目录中可能有用户还需要的信息。需
3
待用户再三确认,确实无可用信息或所有信息均已备份后,再使用rm命令删除它。
(5)如何观察当前系统的运行级别? 答:who -r
(6)如何确定用户所使用的终端? 答:tty
2.单项选择题 (1)-(5) DAAAC 3.综合题
(1)试述Linux系统的访问控制机制。
答:Unix/Linux系统的标准安全级别为C2级,具有用户身份认证、访问控制和操作的可靠性等特点。密码管理是实现身份认证的基础。访问控制机制是复杂的,在本章只可能提到用户登录时,需要提供正确的用户名和密码。只有两者均正确才能进入并使用系统。
(2)试述su命令的用法。 解:参见P82-8§3 4.7.5。
(3)试述如何创建一个用户。
答:创建一个用户非常简单,只需要使用命令useradd就可以了,若以缺省方式创建一个用户zh3,只需要输入命令useradd zh3就可以了。
问题的关键是,为何要创建用户,这个用户创建后要做什么工作?如果为了某项业务而创建用户,则应根据实际情况为用户指定家目录、归属组甚至还有登录shell等。
第5章
1.思考题
(1)Linux系统有几种类型文件?它们分别是什么?有哪些相同点和不同点? 解:参见P33-34。
(2)Linux系统的引导盘有何用处,如何创建系统的引导盘?
答:这里的引导盘是指系统的应急引导盘,是在系统出现故障或不能引导时,用于从其引导的“磁盘”,在通过应急盘启动系统后,就可以对系统进行修复和维护了。
根据系统的内容和大小,应急启动盘可有boot盘和boot/root盘之分。boot盘用来启动系统,boot/root盘本身就是一个迷你Linux系统,boot盘启动完成后,可将boot/root安装而独立工作。启动软盘是系统修复的必备工具,因此掌握启动盘的制作方法或在系统安装后制作应急引导盘是必须的。
在Fedora 9下,可用以下方法构造引导盘:
mkbootdisk --device devicefile --size size kernel
构造引导盘的示例如下:
# mkbootdisk --device /dev/fd0 `uname -r`
说明:mkbootdisk在软件包mkbootdisk上,还需要syslinux包的支持;若不使用/dev/fd0,则可以指定一个普通文件;`uname -r`的是系统的版本号;这里没有指定size由系统自动检测。
(3)何为裸设备,如何使用裸设备?以裸方式使用设备时应注意些什么? 解:参见P100。
(4)如何刻录一个可启动光盘? 解:参见P95-96,尤其注意-b选项。
(5)如果某些设备文件被误删除了,如何恢复它们?
4
解:参见P105 §5.4.5。
(6)如何确定某文件的类型?如何确定文件的属性?
答:可使用file确定文件的类型;可使用stat或ls等查看文件的属性。请参见file、ls和stat命令。
2.单项选择题 (1)-(7) CCDABCA 3.综合题
(1)综述Linux系统的文件权限及其管理。
答:UNIX/Linux系统对文件操作的三种权限(读、写和执行)只对三类人分配,他们是用户主(user:u)、同组人(group:g)和其它人(other:o)。用户主是文件的拥有者;同组人是与文件主同组的用户;其它人是指除用户主和同组人以外的用户。除此之外,还有一个特殊用户root,它具有至高无上的权力。UNIX/Linux文件权限可用字符串或8进制表示,具体管理工具是chmod,当然与权限相关的命令还有umask、chown和chgrp等。umask用于设置新建文件的默认权限,而chown和chgrp用于文件的所有者和组的管理,也会影响到用户的权限,因为地位和身份的改变完全有可能带来权限的变化。
(2)设Linux系统与某Windows系统共享硬盘,且Windows系统使用的FAT格式文件系统,C:盘位于第二个物理分区上,试以Windows C:盘为例说明UNIX/Linux中文件系统的使用。
解:不妨以将C:上的文件复制到Linux或将Linux系统中的文件复制到C:为例说明具体用法。
a. 安装文件系统: mount /dev/hda2 /mnt b. 使用设备:
从C:复制文件比如x:cp /mnt/x . 将文件y复制到C:盘:cp y /mnt c. 拆卸文件系统: umount /mnt 或 umount /dev/hda2 (3)tar和cpio命令常用于数据备份,试分别以实例说明如何使用它们进行数据备份和恢复?
解:参见P107-110 §5.4.8。
(4)在DOS/Windows系统中,磁盘或U盘等介质上的自动启动型病毒经常在介质刚放入驱动器时因其上自动执行文件的启动而感染系统,如何在Linux系统下杀掉介质上的这种病毒?
解:此问题主要是说如何清除引导型病毒的。关于引导型病毒是不小的话题,这里只说如何清楚引导型病毒。对于主引导记录上的引导病毒,清除较容易。
若你有一个主引导记录的正确备份(比如名为MBR.bak),且假设硬盘是IDE的第1块,清除方法如下:
dd if=MBR.bak of=/dev/hda 若没有正确备份的引导记录,事情就麻烦多了。首先要按照备份主引导记录的方法读取主引导记录,不妨将其存放到MBR.tmp,方法如下:
dd of=/dev/hda if=MBR.tmp bs=1b count=1
然后,从其它机器上得到一个可以使用的主引导记录(记为MBR.new),再根据自己系统上或MBR.tmp内容的分区表,修改MBR.new的分区表。确认一切都没有问题后,将MBR.new写入硬盘的主引导记录。
需要说明,这种操作需要很多的经验和耐心,否则可导致更严重的问题。
(5)试述造成UNIX/Linux文件系统受损的常见原因,如何能有效地避免文件系统受
5
损?如何修复受损的文件?
解:参见P100-101 §5.3.5。
(6)何为映像文件?以一个带有vfat文件系统的3”软盘说明如何创建和使用映像文件?
解:映像文件是磁盘、光盘、分区、文件系统等的精确副本,是对指光盘、磁盘或其它存储的文件系统及内容在UNIX/Linux或Windows系统的硬拷贝。
对于一个带有vfat文件系统的3”软盘,设其映像文件为fd.img,可以用命令 dd if=/dev/fd0 of=fd.img bs=18k 构造其映像。
对映像文件fd.img的使用可参照(2),只是这里的安装命令可以是 mount -o loop fd.img /mnt # 使用映像 或 mount /dev/fd0 /mnt # 使用原磁盘
第6章
1.思考题
(1)UNIX/Linux系统有几类进程,试说明后台进程的作用或执行过程? 解:参见P116 §6.1.2。
(2)试述0#和1#进程的作用及UNIX/Linux进程树的形成。 解:参见P116 6.1.4。
(3)试述UNIX/Linux系统的进程状态及转换? 解:参见P117-118
(4)Linux系统中进程常见状态标志有哪些?各是什么意义? 解:参见P122-123 §6.3.2及表6-3。 2. 单项选择题
(1)-(5) AD A B AD AB 3.综合题
(1)试述kill与killall的相同与不同点。
解:两者均可向指定进程发指定信号(默认为TERM)。kill的目标是进程的PID或进程组,killall的目标是进程名。两者还均可使用-l查询系统中的可用信号。
(2)试述fuser的功能与作用,如何终止在终端tty2运行的所有进程?如何监视网络服务端口的活动情况?
解:a. fuser的功能是确定使用某个设备或文件系统的进程和用户的情况。 b. fuser /dev/tty2 c. 示例
#fuser telnet/tcp ftp/tcp #fuser –u 23/tcp 21/tcp #fuser –n tcp 21
#监视本地telnet和ftp端口的tcp活动情况 #监视本地telnet和ftp端口的tcp活动情况 #监视本地ftp端口的tcp活动情况
(3)简述UNIX/Linux的作业和任务调试功能,如何让作业myjob在2小时后执行?如何让系统在每个周一1:00重新启动?
解:a. 在UNIX/Linux系统中还有相关命令用于对作业进行调度,以规定在指定时刻调度或安排任务的执行。这样做是非常有益的,因为我们可以把那些不急于处理的任务,放在系统负载小或非峰值的时间执行,也可以让系统在无用户使用或用户最少的时候重新启动,以保证系统运行的效率。用于作业管理的命令有at,batch和crontab。
6
b. at now + 2 hours < myjob 或 at now + 2 hours -f myjob c. 编辑crontab文件,在其中增加如下一行内容: crontab -e 0 1 * * 1 /sbin/init 6
或 0 1 * * 1 /sbin/shutdown -r now 然后保存退出。
第7章
1.思考题
(1)Linux系统需要哪些分区?在安装Linux系统时应如何规划分区? 解:参见P137-138 §7.1.3及图7-3。 (2)Linux系统的引导程序是Grub,在系统安装时可安装在哪些位置?效果有何不同? 答:可以安装在主引导扇区或自己的逻辑引导扇区。当安装在自己的逻辑引导扇区时,不会影响共享硬盘的其它操作系统,但仍然可以通过GRUB引导它们;当安装在主引导扇区时,将会控制整个硬盘上的操作系统,且可引导安装在扩展分区上的操作系统。具体安装在什么地方,由使用者根据需要选择。
(3)简述Linux系统/etc/inittab文件的作用?
答:/etc/inittab是系统初始化配置文件之一,它描述在系统启动时哪个进程将被启动。在Fedora 9之前的系统中,系统启动包为SysVinit,在系统启动期间,1#进程init将参照/etc/inittab文件进行系统初始化。在Fedora 9~ Fedora 14中,启动包换成了upstart,/etc/inittab功能被削弱,只用来定义默认的运行级。Fedora 15+中,启动包又换成了systemd,/etc/inittab文件不再使用,但整个启动控制机制大致还是SysVinit的思路。
(4)简述init.d和rcN.d目录的作用及联系? 解:参见P149-150.
(5)如何升级你的Linux系统? 解:参见P160-162 §7.5
(6)Linux系统有哪些常见日志,如何阅读它们? 解:参见P165 7.6.2 2.单项选择题 (1)-(6) C AD B D C 3.综合题
(1)试述UNIX/Linux系统的运行级和init与telinit的作用?
解:Linux有7个运行级或运行状态,定义如下:0:关闭系统;1:单用户模式;2:多用户使用模式,但没有NFS功能;3:完全多用户模式;4:没有使用,用户可自定义;5:完全多用户模式,且支持X-Windows(默认运行级);6:重新启动。
init的作用是系统初始化,当然也可以进行运行级别是切换;telinit功能是告诉init进行运行级别的切换。
(2)如何让系统在启动时自动启动用户程序/usr/bin/myinit? 解:参见P151,方法有2:
① 在默认运行目录(比如/etc/rc.d/rc5.d/)内创建一个shell脚本文件S99ustart,并为其添加执行权,内容为
/usr/bin/myinit &
② 将以上内容添加到/etc/rc.c/rc.local文件内。 (3)系统管理的任务是什么?
7
解:参见P167-168 §7.7.1。
(4)sysstat软件包是传统UNIX系统用于系统、磁盘、网络和其它I/O的监视工具,它提供有iostat和sar等实用程序。请安装此包并写出使用rpm命令安装此软件包的操作步骤。
解:①查询: rpm -qa | grep sysstat
②获得: sysstat包(从发布盘或网络) ③安装: rpm -ivh sysstat-*
(5)sar -r命令用于监视系统的内存和交换区使用情况,若内存利用率过高或交换设备使用也率较高,说明了什么问题?
解:如果内存利用率过高或交换设备使用也率较高,说明系统物理内存过少,或系统负担太重。解决方法有二:1、扩内存;2、分割任务,将不同的任务分配到不同的系统上。
(6)试述编译新内核的方法和步骤。 解:参见P172-174。
(7)试述Fedora 9的events机制及event.d与原/etc/inittab内容的关系。
解:Fedora 9所使用的系统初始化功能的软件包为upstart,包中涉及到了与系统的初始化、关机与启动相关的命令,比如init/telinit、halt、reboot、initctl、poweroff、shutdown和runlevel等命令。该机制所使用的配置目录为/etc/event.d,在该目录中的每个文件对应一个初始化事件,当事件到来时执行事件处理脚本文件。事件脚本处理文件与老的SysyV inittab文件内容的对应关系如表7-2所示。
第8章
1.思考题
(1)/dev目录的作用是什么?请说出一些常用的设备及其设备文件名。
解:/dev目录的作用是存入设备文件。其中常用的设备及其设备文件名如表8-1所示。 (2)如何得到一个大小为1K的内容全为’\\0’的数据文件zero_file? 解:dd if=/dev/zero of=zero_file bs=1k count=1 (3)如何使用系统支持的非即插即用设备?
解:可首先为其安装驱动程序,驱动程序可编译进内核,或编译成可加载模块。具体地请参考P180-183 8.2。
(4)交换区的作用是什么?若系统安装时设置的交换区不足,应如何再为系统增加交换空间?
解:交换区的作用是动态扩充内存。当系统交换区不够时,可进行扩充。扩充时可使用设备或普通文件,具体的请参见P191。
2.单项选择题
(1)-(6) A D BC BC AD AC
第9章
1.思考题
(1)什么是子网掩码?其作用是什么?
解:网络掩码也叫子网掩码。网络掩码是用来区分一个IP地址的网络号和主机号各占多少位。
(2)举例说明你知道的Linux系统下的网络服务。
解:使用chkconfig --list可得到系统内已经安装的所有网络服务,比如dhcpd、telnet、
8
vsftpd、network等。
(3)如何查看当前系统运行了哪些服务进程? chkconfig --list # 所有已经安装的服务 chkconfig --list | grep –w on # 所有状态为on的服务 (4)用户如何设置在Linux系统开机时自动启动某个网络服务?
解:设服务名为server,分两种情况:独立服务和xinetd服务。对于独立服务,直接使用命令
chkconfig server on
对于xinetd服务,除了开启server外,还要开启xinetd服务。 2.单项选择题
(1)-(4) ABBC 3.综合题
(1)试述守护进程的工作原理。
解:在C/S模式下,服务器监听(Listen)在一个特定的端口上等待客户连接,连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待客户连接,如果客户端产生一个连接请求,守护进程就创建一个子服务器响应客户连接为用户提供服务,而主服务器继续监听其他的服务请求。一般来说守护进程的生命周期无限长,在系统启动时启动,在系统关闭时停止。
(2)试述如何进行TCP/IP网络配置。 解:①图形界面;②手工修改配置文件;③使用命令比如ifconfig。具体地,参见P197-203 §9.2和ifconfig命令。
第10章
1.思考题
(1)正则表达式可用于模式匹配与搜索,常见的正则表达式有几类?BRE的正则表达式可完全使用在ERE吗?
答:SRE、BRE和ERE;不能。
(2)shell是解释语言还是编译语言? 答:shell是解释语言。
(3)awk的默认域分隔是什么,如何改变awk的域分隔符? 答:白空格;通过-F选项。
(4)在shell中如何回到刚离开的工作目录? 答:cd -~ 或 cd $OLDPWD 2.填空题
(1)答:匹配Henry、henry、Henrietta和henrietta (2)答:显示/etc/syslog.conf中的有效行。
(3)答:将ifile中的sysman替换为System Manager后保存到ofile。 (4)答:将删除空行后的ifile内容保存到ofile。
(5)答:显示系统中的所有用户名,并在最后显示总用户数,记录中的字段数。 (6)答:将ifile的内容转换为大写后保存到ofile。 3.综合题
(1)试分别用grep、sed和awk实现:删除文件ifile中以#开始的注释行,并将结果输出的文件ofile;
解: grep -v \
9
sed \ awk '!/^#/ { print $0 }' ifile
(2)设计一个菜单shell程序,要求: ①捕获信号1、2、3、15;
②当在循环中,当收到信号后在终端上显示:”I Received Signal #”,其中#为收到的信号编号。
解:方法有多种,下为其一。 trap \ # 捕获信号1 trap \ # 捕获信号2 trap \ # 捕获信号3 trap \ # 捕获信号15 echo \: $$\ # 显示PID while true # 循环 do read x # 读一字符串。 #同时等待信号,此时可通过^C、^\\等交互产生信号2和3 # 或从其它终端通过kill -Signal PID发来信号 if [ -z \ # 空串时跳出循环,结束程序 done 程序捕获信号1、2、3和15,按回车结束。 (3)设有shell程序内容为:
pkg=\–qa | grep $pkg`
if [ ! -z $x ]; then echo \else rpm –ivh ${pkg}* #假设程序$pkg的内容在当前目录内存在 fi
试写出程序的功能和执行的可能结果。 解:若dhcp软件包没有安装,则安装之。如果已经安装,则提示\installed! \。当然,还会显示安装过程信息。
说明:此题有点小问题,结果不太明确。若要结果更准确点话,将原程序修改为: pkg=\if [ ! -z $x ]; then echo \else rpm –ivh ${pkg}* #假设程序$pkg的内容在当前目录内存在 fi (4)在UNIX/Linux系统中,环境变量是非常重要,在字符界面下试说明:
①PATH变量的作用,如何得到PATH的值?
②在UNIX/Linux系统的超级用户的环境变量PATH中允许包含当前目录吗?
③若在超级用户的当前目录内有可执行文件mypro,如何执行它(写出执行时键盘输入内容)?
④如何使用该命令在后台执行(写出执行时键盘输入内容)? 解:
①命令搜索路径;echo $PATH 或 env | grep PATH
②不能。一般用户的PATH环境变量中,也不允许包含当前目录
③ /root/mypro。若root用户工作在自己的家目录也可以这样运行./mypro ④ /root/mypro &
(5)设计一个shell程序计算n的阶乘。要求:
10
①从命令行接收参数n;
②在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示;
③最后出计算的结果。 解: #!/bin/sh # 命令行参数检查 if [ $# -lt 1 ]; then # 没有参数,返回1 echo -e \fi # 赋初值 m=1;y=1 # 赋初值。m为阶乘,y为控制变量 # 计算 while true; do m=`expr $m \\* $y` # m=m*y y=`expr $y + 1` # y=y+1 if [ $y -gt $1 ]; then break; fi done # 输出 echo \第11章
1.思考题
(1)gcc是怎么工作的? 解:参见P250 11.1.4.
(2)如何构造和使用自己的静态库? 解:先编译生成目标模块;使用命令ar crv根据目标模块生成静态库;必要是使用ranlib建立库索引。
(3)如何构造和使用自己的共享库?
解:编译时使用-shared选项,但源文件中不得有main()函数。 (4)在gdb调试程序的过程中,如何确定用户所在的模块? 解:使用where子命令。 2.填空题
(1)设C语言程序my.c A. gcc -c my.c B. gcc –S my.c C. gcc –o myp my.c
(2)设有两个C语言程序模块c1.c和c2.c(均不含main函数) A. gcc -c c1.c c2.c; ar crv libmyar.a c1.o c2.o B. gcc -shared -o libmyar.so c1.c c2.c (3)在某Makefile内有以下语句: SRC = f1.c f2.c f3.c TGT = $(SRC:.c=.d) SRC += f4.c
11
TGT= f1.d f2.d f3.d SRC= f1.c f2.c f3.c f4.c 3.综合题 解:
(1)生成共享库libmys.so
(2)4个,分别是all、%.o、libmys.so和clean。
(3)能。因为规则“%.o : %.c”定义了由c源程序生成目标的办法。
第12章
1.简答题
(1)简述DHCP的功能。
答:DHCP是用来自动给客户机分配TCP/IP信息的网络协议,每个DHCP客户连接到中央位置的DHCP服务器上,该服务器会返回包括IP地址、网关和DNS服务器信息的客户网络配置。
(2)简述DHCP配置文件的相关选项及涵义。 答:DHCP配置文件的相关选项是用来配置DHCP客户端的可选参数,他们全部用option关键字作为开头。下表给出了常用的选项及其解释。 选 项 subnet-mask 子网掩码 domain-name “域名” domain-name-server ip地址 host-name “主机名” routers ip地址 broadcast-address 广播地址 netbios-name-servers ip地址 netbios-node-type 节点类型 ntp-server ip地址 nis-servers ip地址 nis-domain “名称” time-offset 偏移量 (3)在不同网络环境中DHCP的规划。
答:DHCP作为一种机制,它必须允许本地管理员控制配置参数,使客户不需要手工配置就可以获取网络配置参数,同时还能够使每一台连接到网络中的计算机自动获得唯一的一个动态的IP地址,并且能够为早期的BOOTP客户提供兼容的服务。
由于对DHCP服务器可以服务的客户端最大数量和可以在DHCP服务器上创建的作用域数量没有固定限制,因此在确定要使用的DHCP服务器数目时,最主要的考虑因素是网络体系结构和服务器硬件。在组织网络中部署DHCP服务器前,可以先对它进行测试以确定硬件的限制和性能并了解网络体系结构、通信和其他因素是否影响DHCP服务器的性能。通过硬件和配置测试,还可以确定每台服务器要配置的作用域数量。
1.小型网络中的DHCP的部署
在只有一个子网的小型网络中,可使用单一的DHCP服务器作为网络中主机提供服务,应考虑以下因素:
12
常用的选项及其解释表 功 能 为客户端指定子网掩码 为客户端指定域名 为客户端指定DNS服务器的IP地址 为客户端指定主机名 为客户端指定默认网关 为客户端指定广播地址 为客户端指定WINS服务器的IP地址 为客户端指定节点类型 为客户端指定网络时间服务器的IP地址 为客户端指定NIS域服务器的IP地址 为客户端指定所属的NIS域的名称 为客户端指定与格林尼治时间的偏移量,或时区 [1]网络中提供特殊服务(DNS、FTP)的服务器应该采用静态IP地址。
[2]不同的网络服务应该由不同的服务器承担,此方法可以做到在某个网络服务停止时其他的服务器仍然可以正常工作,以此来提高网络的可用性和安全性。
2.大型网络中部署DHCP
在大型网络中由于主机数目较多、网络结构相对复杂、网络应用多、网络的安全性要求较高等原因使得DHCP的部署更为复杂。在网络中物理子网划分的数量以及路由器的位置将对DHCP性能发挥的影响非常明显,因为广播包在物理子网之间的传输和对路由器的跨越是比较困难的。
在大型网络中通常会采用路由器将网络划分为多个物理子网,而路由器的主要功能就是屏蔽子网间的广播、减少网络带宽占用、提高网络性能。如果子网中没有一台DHCP服务器,那么每个子网中的主机将没有办法跨越子网来定位DHCP服务器,也就无法获得IP地址。要想解决这样的问题,可以有两种方法:
[1]为每一个子网配置一台DHCP服务器,可以有效地解决每个子网中的主机方便的获取IP地址。但是该方法的不足之处是网络管理将会是一件非常麻烦的事。
[2]在每个子网中设定一个DHCP中继代理。网络中的主机将IP请求发送给中继代理,由中继代理向DHCP服务器发出请求,并将获得的IP地址返回给DHCP客户机。
(4)DHCP中继的涵义及其应用。
答:DHCP中继代理(DHCP relay)允许将无DHCP服务器的子网内的DHCP客户机的DHCP请求转发给其他子网的一个或多个DHCP服务器。当某个DHCP客户机发出请求信息时,DHCP中继代理把该请求转发给DHCP中继代理启动时所设定的DHCP服务器,当DHCP服务器返回应答时,该应答被广播或单播给发出请求的客户机所在的网络。需要注意的是DHCP中继代理本身应该具有静态IP地址。
要启动DHCP中继代理,操作如下: service dhcrelay start 2.综合题
(1)试述DHCP的工作原理。
答:根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。
第一次登录的时候:当DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP数据设定,它会向网络发出一个DHCPDISCOVER数据包。因为客户端还不知道自己属于哪一个网络,所以数据包的源地址标记为0.0.0.0,而目的地址则为255.255.255.255,然后再附上DHCPDISCOVER的信息,向网络进行广播。
预设的DHCPDISCOVER等待时间预设为1秒,也就是当客户端将第一个DHCPDISCOVER数据包送出去之后,在1秒之内没有得到响应的话,就会进行第二次DHCPDISCOVER广播。若一直得不到响应的话﹐客户端会有四次DHCPDISCOVER广播(包括第一次在内),除了第一次会等待1秒之外,其余三次的等待时间分别是9﹑13﹑16秒。如果都没有得到DHCP服务器的响应,客户端则会显示错误信息,宣告DHCPDISCOVER的失败。之后,基于使用者的选择,系统会继续在5分钟之后再重复一次DHCPDISCOVER的过程。
提供IP租用地址:当DHCP服务器监听到客户端发出的DHCPDISCOVER广播后,它会从那些还没有租出的地址范围内,选择最前面的空闲的IP地址,连同其它TCP/IP设定,响应给客户端一个DHCPOFFER数据包。由于客户端在开始的时候还没有IP地址,所以在其DHCPDISCOVER数据包内还会带有其MAC地址信息,并且有一个XID编号来辨别该数据包,DHCP服务器响应的DHCPOFFER数据包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCPOFFER数据包会包含一个租约期限的信息。
13
接受IP租约:如果客户端收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCPOFFER而已(通常是最先抵达的那个),并且会向网络发送一个DHCPREQUEST广播数据包,告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP地址。同时客户端还会向网络发送一个ARP封包,查询网络上面有没有其它机器使用该IP地址;如果发现该IP已经被占用,客户端则会送出一个DHCPDECLINE数据包给DHCP服务器,拒绝接受其DHCP OFFER,并重新发送DHCPDISCOVER信息。
租约确认:当DHCP服务器接收到客户端的DHCPREQUEST之后,会向客户端发出一个DHCPACK响应,以确认IP租约的正式生效,也就结束了一个完整的DHCP工作过程。具体的工作流程(如图所示)。
DHCP的工作流程
客户机取得IP租约后,即可使用该IP地址实现网络服务。若采用“动态分配”的方式的话,每次登录网络时都需要通过以上的步骤获取;而如果采用“自动分配”的方式的话,DHCP客户机必须定期更新租约,否则当租期到期时,就不能再使用此IP地址。按照RFC的默认规定,每当租用时间超过租约的50%或87.5%时,客户机就必须发出DHCPREQUEST信息包,向DHCP服务器请求更新租约,在更新租约时,DHCP客户机是以单点传送方式发出DHCPREQUEST信息包,不再进行广播。具体过程如下:
(1)在租期超过50%时,DHCP客户机直接向为其提供IP地址的DHCP服务器发送DHCPREQUEST消息包,如果接到服务器的DHCPACK数据包则租期更新完成,如没有收到服务器端发送的DHCPACK数据包,仍可继续使用。
(2)在租期超过87.5%,再次向DHCP服务器发送DHCPACK数据包,若仍未完成,则当IP地址租期到达时应放弃该IP地址,重新开始IP租用过程。
(2)在设置DHCP备份时,应该注意和解决哪些问题?
答:在一个具有大量主机和子网的大型网络中,DHCP的冗余是一个非常关键的问题。由于DHCP服务器承担着为全网主机提供IP地址分配的责任,如果不考虑DHCP的冗余,只需要再为每个子网中设置一台DHCP服务器,也不需要使用DHCP中继代理,但要考虑安全性的问题,一旦DHCP服务器出现故障,则整个网络中的主机都将不能访问网络资源。为解决此问题可以通过同时配置多个DHCP服务器来相互实现冗余以保证网络的可用性。但由于DHCP服务器本身并不提供备份功能,所以容错能力只能通过将不同的IP地址段分发到不同的DHCP服务器上来实现,让多个不同的DHCP服务器为同一个网络提供DHCP服务,最为可行的解决方案就是在两个子网的DHCP服务器上相互为对方的子网提供DHCP服务,然后通过设置DHCP中继代理或路由器来转发DHCP广播包以达到冗余的目的,从而保证DHCP服务的可用性和安全性。
例如以下两个网络(192.168.1.0和192.168.2.0)中的DHCP服务器的设置: #子网192.168.1.0中的DHCP服务器的配置如下: subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.199; }
14
subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.100 192.168.2.199; }
#子网192.168.2.0中的DHCP服务器的配置如下: subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.10 192.168.2.199; }
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.199; }
以上两个DHCP服务器均能够对两个网络上的客户机提供DHCP服务,以实现DHCP的冗余。
第13章
1.选择题
(1)-(6) B B ABCD B D ABCD 2.简述题
(1)简述FTP服务的工作原理。
答:FTP采用“客户机/服务器(C/S)”方式,客户端需要在自己的本地计算机上安装FTP客户软件,服务器端要安装FTP服务器方软件。用户通过客户端程序连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
例如,用户发出一条命令要求服务器向用户传送一个文件的一份拷贝,服务器会响应这条命令,将指定文件送到用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
FTP客户端程序有字符界面和图形界面两种,字符界面的命令通常为ftp,当然也有lftp、gftp、sftp、ncftp和cuteftp等。gftp和cuteftp是图形界面的,图形界面下最常用的FTP客户程序是上网常用的浏览器,通过图形界面可以快捷、方便地进行FTP的文件传输等操作。
在FTP的使用中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload),就现在来讲,这两个概念是清楚的,所不同是下载是常用的,几乎每个人都经常用到的,而上传是不经常使用的,而有FTP服务器中是被禁止的,或只允许个别用户授权用户使用。以下载文件为例,当用户启动FTP从远程计算机上复制文件时,事实上启动了两个程序。一个是本地机上的FTP客户程序(通过为ftp),它向FTP服务器提出复制文件的请求;另一个是在远程计算机上启动的FTP服务器程序(比如vsftpd),它响应客户端的请求把指定的文件传送到发送请求的计算机上。
(2)简述TFTP服务的功能。
答:TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机和服务器之间进行简单文件传输的协议。
TFTP通常是基于UDP协议而实现,是为了进行小文件传输,因此它不具备通常的FTP的许多功能,因此,可以看成是一个简化了的FTP。它与ftp的主要区别是没有用户权限认证与权限管理等功能。也就是说TFTP不需要验证客户端的身份及权限。因此TFTP的缺点是传送不可靠、没有用户和密码验证等,尽管如此,它仍非常适合安全性要求不高的小型文件传送。
当前,TFTP有种传输模式:NetASCII模式(ascii:8位的ASCII码形式)、8位组模式
15
(binary,octet:8位源数据类型)。
TFTP支持文件的上传与下载功能。如果客户端发送的是下载请求,那么,服务器将根据客户端发过来的报文,解析出文件的路径和文件名,并且根据解析出来的文件名及内容,开始构造报文,然后把它发送给客户端;如果客户端发送来的是上传请求,那么,服务器端也必须解析出文件名及要保存的路径。若满足条件要求,则发送ACK给客户端以确认已经接受客户端的请求,然后等待客户的报文。客户端接收ACK后,就可以开始发送数据报文,服务器开始接收报文,并将其写到指定的路径的文件中。
在TFTP中,任何一个读取或写入文件的请求,也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。每个数据包都包括一块数据,服务器发出下一个数据包之前,数据块必须得到客户对上一个数据包的确认。如果一个数据包的大小小于512字节则表示传输结束。如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。通信的双方都是数据的发出者和接受者,一方传输数据接收应答,另一方发出应答接收数据。
在TFTP文件的传输过程中,通常都要求有一定的容错能力。大部分的错误都会导致连接中断,假定错误由一个错误的数据包引起,则这个包不会被确认,也不会被重新发送,因此,另一方无法接收到。如果错误包丢失,则使用超时机制。一般的错误主要是由下面三种情况引起的:一是不能满足请求;二是收到的数据包内容错误,而这种错误又不能由延时或重发解决;三是对需要资源的访问错误(如磁盘满等)。
第14章
1.简述题
(1)简述telnet、ssh的功能和区别。
答:分时系统中,多个用户同时使用一台计算机,为了保证系统的安全和记账方便,系统要求每个用户有单独的账号作为登录标识,系统还为每个用户设定了一个口令。用户在使用该系统之前要输入帐号和口令,这个过程被称为“登录”。远程登录是指用户使用telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端相当于一个非智能机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。Telnet协议提供了三种基本服务:
(1)Telnet定义网络虚拟终端为远程主机的系统提供一个标准接口。客户机程序不必详细了解远程主机的系统,他们只需构造使用标准接口的程序;
(2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
(3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
OpenSSH是SSH(Secure SHell)协议的免费开源实现。它用安全、加密的网络连接工具代替了telnet、ftp、rlogin、rsh和rcp等工具。OpenSSH支持SSH协议的版本1.3、1.5、和2。自从OpenSSH的版本2.9以来,默认的协议是版本2,该协议默认使用RSA钥匙。
使用Openssh工具的主要目的是增进系统安全性,所有使用Openssh工具的通讯,包括口令,都会被加密。telnet和ftp telnet和ftp使用纯文本口令,并被明文发送,这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进系统而对你的系统造成危害,用户应该尽可能地使用OpenSSH的工具集来避免这些安全问题。另一个使用OpenSSH的原因是,它自动把DISPLAY变量转发给客户机器,换一句话说,如果用户在本地机器上运行X窗口系统,并且使用ssh命令登录到了远程机器上,当在远程机器上执行一个需要X的程序时,它会显示在本地机器上。如果用户偏爱图形化系统管理工
16
具,这就会为用户的工作打开方便之门。
(2)简述openssh的主配置文件的选项及含义。 答:客户端配置文件的常用配置项有: Host hostname:设定主机名,“*”表示所有的计算机。
ForwardAgent no:设置连接是否经过验证代理转发给远程计算机
ForwardX11 no:设置X11连接是否被自动重定向到安全的通道和显示集。 RhostsAuthentication no:设置是否使用基于rhosts的安全验证。
RhostsRSAAuthentication no:设置是否使用用RSA算法的基于rhosts的安全验证。 RSAAuthentication yes:设置是否使用RSA算法进行安全验证 PasswordAuthentication yes:设置是否使用口令验证。
FallBackToRsh no:设置如果用ssh连接出现错误是否自动使用rsh。 UseRsh no:设置是否在这台计算机上使用“rlogin/rsh”。 BatchMode no:如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。
CheckHostIP yes:设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。
StrictHostKeyChecking no:#如果设置成“yes”,ssh就不会自动把计算机的密匙加入$HOME/.ssh/known_hosts文件,并且一旦计算机的密匙发生了变化,就拒绝连接。
IdentityFile ~/.ssh/identity:设置版本1用户的RSA密钥文件 IdentityFile ~/.ssh/id_rsa:设置版本2用户的RSA密钥文件 IdentityFile ~/.ssh/id_dsa:设置版本2用户的DSA密钥文件 Port 22:设置连接到远程主机的端口。
Cipher blowfish“Cipher”:设置加密用的密码。 EscapeChar ~:设置escape字符 服务器配置文件的常用配置有: Port 22:“Port”设置sshd监听的端口号。
ListenAddress 0.0.0.0:设置sshd服务器绑定的IP地址。
HostKey /etc/ssh/ssh_host_key:设置包含计算机私人密匙的文件。 ServerKeyBits 1024:定义服务器密匙的位数。
LoginGraceTime 600:设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
KeyRegenerationInterval 3600:设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
PermitRootLogin no:设置root能不能使用ssh登录,一般不设成“yes”。 IgnoreRhosts yes:设置验证的时候是否使用rhosts和shosts文件。
IgnoreUserKnownHosts yes:设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的$HOME/.ssh/known_hosts。
StrictModes yes:设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
X11Forwarding no:设置是否允许X11转发。
PrintMotd yes:设置sshd是否在用户登录的时候显示/etc/motd中的信息。
SyslogFacility AUTH:设置在记录来自sshd的消息的时候,是否给出facility code。 LogLevel INFO:设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。
17
RhostsAuthentication no:设置只用rhosts或/etc/hosts.equiv进行安全验证是否已经足够了。
RhostsRSAAuthentication no:设置是否允许用rhosts或/etc/hosts.equiv加上RSA进行安全验证。
RSAAuthentication yes:设置是否允许只有RSA安全验证。 PasswordAuthentication yes:设置是否允许口令验证。
PermitEmptyPasswords no:设置是否允许用口令为空的帐号登录。
AllowUsers admin:admin为任意的数量的用户名的模式串(patterns)或user@host样式的模式串,字符串用空格隔开。主机名可以是机名或IP地址。
2.综述题
综述ssh在网络中的应用。 答:见§14.2.3
第15章
1.思考题
(1)什么是SMB,什么是Samba?
答:在NetBIOS出现以后,Microsoft就是使用NetBIOS实现了一个网络文件/打印服务共享系统,这个系统基于NetBIOS设定了一套文件共享协议,即SMB协议,这个协议被Microsoft用于Lan Manager和Windows NT服务器系统中。Windows系统均包括这个协议的软件,因此,这个协议在局域网系统中影响很大。
Samba是一组软件包,使Linux支持SMB协议,目前已经成为各种Linux发行版本中的一个基本的软件包。Samba协议是在TCP/IP上实现的,它是windows网络文件和打印共享的基础,负责处理和使用远程文件和资源。在默认情况下,Windows工作站上的Client使用服务消息块(SMB)协议。正是由于Samba的存在,使得Windows和Linux可以沟通并互相通信。安装了Samba后,就可以直接而方便地在Linux和Windows之间共享资源。
(2)叙述smb.conf文件的作用和结构。
Samba服务器的配置文件为smb.conf。在Fedora系统中默认存储在/etc/samba目录下,也就是说配置文件为/etc/samba/smb.conf。在samba安装后,就有一个可以缺省使用的样本程序,并有较详细的说明。文件中的空行、以“#”或“;”开始的行为注释行,对samba配置不起任何作用。用户通过阅读该配置文件的内容,就可以理解其中的配置项其意义。
配置文件的格式,类似Windows系统的*.ini文件,以节为单位进行配置。该文件被分隔成若干节,每一节都由一个被方括号括起来的标识开始(比如[global]、[homes]和[printers]等)。[global]用于全局参数设置以控制Samba的特性或为其它节提供缺省参数。除[global]节外,每个节描述一个共享资源,节的名字就是共享资源的名字,共享资源的属性由节内的参数或选项来描述。smb.conf文件中的每一有效行可以是节的名字或“参数=值”对。每个节都以一个包含在方括号中的节名开始,节名后是“参数=值”对,一行一对,用于定义或描述节的属性和作用。节名和参数名都不区分大小写,但是字符串参数值仍要区分大小写。参数值可以是布尔值或字符串,在含有空格符的字符串也不必用引号说明,如果在进行语法分析时发现引号,将忽略;当参数值含有多项时,用空格符作为字符串之间的分隔符;当参数为布尔型时,它的值可是yes/no 或 true/false。
(3)如何设置文件目录共享?
答:设置用户家目录共享会使用[homes]节。[homes]节允许每个本地在其它OS上,比如Windows系统,通过samba访问自己的家目录,并可在自己的家目录内进行写操作。如果还有其它共享目录的话,本地用户还能同时看到它们。但是,其它用户将无法看到或共享
18
自己的家目录。以下是一个[homes]节的设置示例。
[homes]
comment=Home Directories ;设置描述串 browseable=no ;不允许浏览 writable=yes ;可写 valid users=%S ;所有的用户都可以通过Windows访问其家目录 wreate mode=0664 ;文件创建权限为0644 directory mode=0775 ;目录创建权限为0775
说明:在[homes]节中如果是允许geust用户访问的,则所有用户的家目录均可被所有客户在不提供密码的情况看到,如果是有意这样做的话,应该取消writable=yes,并增设read only=yes以直到只读作用。browseable会从[global]中继承下来,设置browseable=no可以禁止其它用户看到自己的家目录。
(4)如何设置打印机共享?
答:通过设置打印机节[printers]可让指定打印机共享出去,供所有用户使用。本节的结构与[homes]基本相同,但是针对打印机的,所以出于用途的考虑,与[homes]节的设置有所不同。大致结构如下:
[printers]
comment=All Printers ;设置描述串 path=/var/spool/samba ;设置缓冲队列位置 browseable=no ;不允许浏览 guest ok=yes ;启用guest用户 writable=no ;不允许写 printable=yes ;允许打印 说明:printable=yes是必须的,否则不能打印;path必须指到一个人每均可写且具有sticky权限的目录;如果不设定打印机名,则使用本地打印机。
(5)如何从Linux访问Windows或另一台Linux的共享资源? 答案参见§15.2.5.
(6)什么是nfs,它主要用于什么情况下的共享?
答:NFS是Network File System的缩写,即网络文件系统。它是由Sun公司开发,并于1984年推出的一个RPC服务系统,目前已经成为文件服务的一种标准,其最大的功能是可以通过网络实现文件共享。它只用于Unix、Linux及类Unix间的文件共享。当用户想使用远程文件时用“mount”命令就可把远程文件系统挂载在自己的文件系统下,作为本地系统的一部分来使用。NFS有属于自己的协议和端口号,但在传送资料或者其他相关信息的时候,NFS服务器使用一个称为“远程过程调用”(Remote Procedure Call,RPC)的协议来协助自己运行。
2、选择题 (1)-(4):CBAB
第16章
1. 思考题
(1)试述Linux系统的安全机制及安全防范策略。 答:安全机制方面,Linux系统提供了BIOS安全设置、LILO安全设置、用户帐号认证、系统日志文件和文件系统权限等基本安全机制,这些安全机制都需要系统管理员小心的进行设置。①可以把BIOS作为开机的第1道防线,设置密码可以阻止别人进入BIOS改动其中
19
的设置,因此可以防止在BIOS中改变启动顺序,从而阻止别有用心的人企图用特殊的启动盘启动系统或通过改变启动参数来启动系统,从而有力地保证了计算机软/硬件系统的安全;②GRUB是Linux的启动模块。可以通过修改其配置文件/etc/grub.conf中的内容来进行配置。可以在其中使用passwd或lock命令设置密码,以保护自己的系统;③目前网络上大部分对系统的攻击都是从截获口令或者猜测口令等口令攻击开始的,所以首先应该对帐号和口令的安全进行设置;④日志是了解Linux系统运行情况的唯一方法。系统管理员要合理利用Linux系统的日志文件,监控好系统的运行;⑤在Linux系统中,每一个文件或目录都有3个或3组权限属性,分别定义文件或目录的所有者、同组用户和剩余所有其它用户的使用权限。
安全防范策略方面,主要分为①物理环境保障,包括防水、火、盗、电磁辐射,物理网络隔离、用电环境,楼房建筑与机房位置等诸多方面;②制度保障,包括网络隔离制度、工作环境管理制度和人员管理制度;③用户密码的安全性,保障系统安全的关键;④设置好内部用户的权限;⑤检查文件系统的安全性,检查并删除多余和可疑的文件,并设置系统的默认权限方案⑥加强对系统运行的监控和记录;⑦数据备份,确保备份数据的有效性和可用性;⑧提高系统的运行级别,提高系统的安全级别,可以增强系统的安全性;⑨配置SELinux,有效地管理用户存取数据时的行为。
(2)叙述iptables的表和链。
答:iptables处理不同种类的数据包时,使用不同的规则表。这些规则表由功能上相互独立表模块来实现。有三个主要的规则表:filter表、nat表和mangle表。每条链都有若干个规则组成。每当一个数据包到达一条链时,系统就会从第一条规则开始检查,看是否符合规则;若符合,系统根据该规则定义方法处理数据包;若不符合,则继续下一条规则。如果数据包不满足链中任何规则,系统按链定义阻止或丢弃该数据包。
①filter表:filter表是iptables默认的表,该表包含了INPUT、OUTPUT和FORWARD三条链。包含了真正的防火墙过滤规则。另外,filter表包含两种扩展:目标扩展和匹配扩展;
②nat表:nat表需要通过命令行选项来定义,该表包含源和目的地址和端口转换使用的规则。功能上不同于防火墙过滤规则。它有三个内建规则链:PREROUTING、OUTPUT和POSTROUTING;
③mangle表:mangle表能给数据包打上标记,也可以把数据包送到目的地址之前对其进行修改。该表也需要通过命令行选项定义,它有五个内建规则:PREROUTING链、INPUT链、POSTROUTING链、FORWARD链和OUTPUT链。
(3)叙述SELinux的常用命令及作用。 答:①查看安全上下文 ls -Z ps -Z
②更改安全上下文 chcon -t tmp_t /etc/hosts
chcon -t public_content_rw_t /var/ftp/incoming ③恢复系统的默认上下文 restorecon /etc/hosts
④查看和设置selinux级别 getenforce setenforce
system-config-selinux ⑤selinux帮助工具
20
安装setroubleshootd
用sealert -b打开这个图形工具 ⑥selinux策略管理工具 列出文件上下文
semanage fcontext -l | grep ftp ⑦setroubleshoot client tool 查看警告id
sealert -l 05d2769e-af58-4fc5-ac09-b32cdfb38222 ⑧设置SELinux布尔值
setsebool -P ftpd_disable_trans=1 setsebool -P allow_ftpd_anon_write=1 ⑨查看程序相关的 selinux帮助
[root@station10 vsftpd]# man -k ftp | grep selinux (4)叙述事件报告制度。
答:一个被捕获的异常访问企图、或者权限的提升,对一个系统或多个系统的机密、完整性或可访问性的入侵都可以称为一个事件。Linux系统管理者应该把监控系统日志文件、系统完整性报告和系统记账报告当作日常工作。每个单位、每个部门或系统都应该有自己的事件报告制度,若发现问题或事件应该及时、慎重地上报。
报告事件时,由用户决定报告哪些类型的事件。用户可以报告简单的端口扫描事件、拒绝服务攻击事件、访问秘密文件事件、非法占用系统资源事件等。类型包括企图获取登录系统帐号的访问权、企图重新配置系统、拒绝服务攻击、企图访问秘密文件和企图将文件存储在用户磁盘中。
应该把相关事件信息报告给以下可能的部门:单位主管部门、发出进攻的站点的根用户或邮件管理员、网络管理员、ISP运行中心、Linux发行商。事件报告内容应该包含能够帮助事件响应或分析小组追查问题所需的足够信息,但是并不是说报告中包含的信息越多越好。
2. 单项选择 (1)-(4):CDAA
第17章
17 internet接入与代理服务器
1.Fedora Core9支持哪些Internet接入方式? 答:接入方式有以下几种:(1)以太网连接:用于配置Cable Modem和局域网两种接入连接;(2)ISDN连接:用于配置ISDN接入;(3)调制解调器连接:用于配置Modem接入;(4)令牌环连接:用于配置同IBM令牌环网的接入;(5)无线连接:用于配置无线接入;(6)xDSL连接:用于配置ADSL、IDSL和SDSL。
2.简述ADSL方式接入Internet的操作步骤。 答:操作步骤如下:
第一步:输入ADSL用户名;
第二步:输入与ADSL连接的网卡设备名。默认值是第一块网卡eth0,如果仅有一块网卡,可直接按Enter键,否则要指定连接ADSL的网卡设备名;
第三步:当ADSL连接掉线后是根据需要连接还是自动连接,默认为自动连接,可直接按Enter键;
第四步:设置DNS,由于目前ISP对ADSL个人用户一般都动态分配DNS服务器地址,
21
在此只需要输入“server”即可;
第五步:输入ADSL帐号密码两次;
第六步:是否允许普通用户开始和终止ADSL连接。默认为允许,可直接按Enter键。否则需输入“no”,只有超级用户才有该权限;
第七步:设置防火墙。有3个级别,0表示无防火墙,1表示一般级别防火墙,2表示高级别防火墙。一般计算机设置为1,局域网网关通常需要设置为2;
第八步:是否在启动时即进行ADSL连接,默认不连接,可直接按Enter键。否则需输入“yes”,开机时即进行ADSL连接;
第九步:出现ADSL连接设置的汇总信息,如不需要修改,输入“y”; 第十步:完成ADSL连接设置。 3.代理服务器的作用是什么?
答:代理服务器的主要作用有以下几个方面:(1)共享访问网络资源;(2)提高访问速度;(3)隐藏主机的真实IP地址,提高系统的安全性;(4)控制用户访问权限;(5)通过代理服务器访问一些不能直接访问的站点。
4.什么是squid?它具有什么功能特点?
答:Squid是Linux平台下一个高性能的具有网页缓存功能的代理服务器软件,它支持HTTP、FTP和Gopher等协议,在缓存数据的同时也缓存DNS查询结果,并支持SSL和访问控制。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。Squid可以工作在很多操作系统平台中,如AIX、Digital、FreeBSD、HP-UX、Linux、Solaris等等。
主要功能特点包括:(1)支持HTTP、FTP、gopher和其他的URL请求;(2)支持SSL;(3)支持代理和缓存;(4)支持多级缓存;(5)支持透明代理;(6)支持ICP、HTCP、CARP等缓存摘要;(7)支持多种方式的访问控制和全部请求的日志记录;(8)提供HTTP服务器加速;(9)能够缓存DNS查询。
5.什么是透明代理? 答:透明代理是指客户端不需要设置浏览器的代理配置就可以直接通过Squid代理服务器访问Internet。配置了透明代理之后,客户端用户用浏览器浏览网页时,感觉就像直接上网一样,但实际上却是通过代理服务器浏览网页,也就是说对客户透明。
第18章
1.写出两种立即启动named的方法。 解: service named restart
/etc/init.d/named restart
也可以使用start,但若是named已经启动,则会造成启动失败。 2.DNS服务器主要有哪几种类型? 解:参见P380-381 18.1.5
3.简述DNS查询模式及解析过程。
答:当客户机需要访问Internet上的主机时,首先需要根据对方域名或主机名通过本地DNS服务器获得它的IP地址,这叫做正向解析。在查询过程中,往往在本地DNS服务器不一定有对应数据,这时会继续向另外一台DNS服务器查询,直到解析出要访问主机的IP地址或失败为止,这一过程称为查询或 。DNS查询有3种,递归查询、迭代查询和反向查询。反向查询,也叫反向或逆向查询或解析,是根据IP地址查询主机名或域名的过程,得到的结果可能不唯一。更具体的,请参见P380 18.1.3
22
第19章
1.简述电子邮件系统的组成及工作原理。 答:(1)电子邮件系统的组成
电子邮件系统由五部分构成,分别是:邮件用户代理MUA、邮件传输代理MTA、邮件提交代理MSA、邮件投递代理MDA以及邮件访问代理MAA。
a.邮件用户代理(MUA)
MUA(Mail User Agent)主要提供阅读、发送和接收电子邮件的用户接口,它是邮件系统的客户端程序。MUA将向用户隐藏整个邮件系统的复杂性,是整个邮件系统中与用户交互较多的部分。MUA一般应具有如下的3个功能:
[1]撰写邮件:给用户提供方便的信件编辑环境。 [2]显示邮件:方便用户阅读信件。
[3]处理邮件:提供处理邮件的能力,如保存、删除、打印、转发等。
最常用MUA的有:Windows环境下Microsoft的Outlook Express、Foxmail等,Linux环境下常用mail、elm、pine、Evolution等。
b.邮件传输代理(MTA)
MTA(Mail Transfer Agent)的主要功能是邮件的存储和转发(Store and Forward)。MTA监视用户代理MUA的请求,根据电子邮件的目标地址找出对应的邮件服务器,将邮件在服务器之间传输并且将接收到的邮件进行缓冲。MTA根据接收者的地址选择邮件应该发送的主机,它可能是目标主机,也可能是邮件网关、中继等中间主机。MTA起到了与MUA接口的作用,同时又负责在各个邮件系统之间传输消息。
MTA应该具有如下的功能:
[1]接收和传输由客户端发送的邮件。
[2]接收客户的邮件,并将邮件放置在缓冲区存储,直到用户连接收取邮件。 [3]对邮件队列进行维护,从而使客户端不必一直等待到邮件真正发送出去。 [4]有选择地转发或拒绝转发目的地为另一个主机的消息。
Linux环境下常用的MTA程序有sendmail、qmail、Postfix等,通常一个系统中安装一个MTA程序即可。MTA都可以搭配各种不同的MUA工作,因为MUA和MTA是完全独立的。
c.邮件提交代理(MSA)
MSA(Mail Submission Agent)的主要功能是负责消息发送之前必须完成的所有准备工作和错误检测,然后交由MTA发送。在RFC2476引入之前,所有的MSA的工作都由MTA完成,也就是说绝大多数的MTA还担当着MSA的角色。RFC2476引入之后,MSA从MTA中分离出来,从而分担工作负荷、获得最佳性能并提高邮件系统的安全性。MSA通常是由MTA运行在特定端口(587)上实现。
d.邮件投递代理(MDA)
MDA(Mail Delivery Agent)的主要功能是从MTA接收邮件并进行适当的本地投递,可以投递给一个本地用户、一个邮件列表、一个文件或是一个程序。通常MDA也称本地投递代理(Local Delivery Agent LDA)。Linux环境下常用的MDA是mail.local、smrsh和procmail。
e.邮件访问代理(MAA)
MAA(Mail Access Agent)的主要功能是用于将用户连接到系统邮件库,使用POP或IMAP协议收取邮件。Linux环境下常用的MAA有UW-IMAP、Cyrus-IMAP、COURIER-IMAP等。
23
(2)电子邮件系统的工作原理
电子邮件系统的运作方式与其他的网络应用有着根本上的不同。在其他绝大多数的网络应用中,网络协议直接负责将数据发送到目的地。而在电子邮件系统中,发送者并不等待发送工作完成,而仅仅是将要发送的内容发送出去。
例如,文件传输协议(FTP)就像打电话一样,实时地接通对话双方,如果一方暂时没有应答,则通话就会失败。而电子邮件系统则不同,发送方将要发送的内容通过自己的电子邮局将信件发给接收方的电子邮局。如果接收方的电子邮局暂时繁忙,那么发送方的电子邮局就会暂存信件,直到可以发送。而当接收方未上网时,接收方的电子邮局就暂存信件,直到接收方去取。可以这么说,电子邮件系统就像是在Internet上实现了传统邮局的功能,而且是更加快捷方便地实现。
2.简述sendmail的工作方法。
答:sendmail的工作方法是根据用户的电子邮件的地址,为用户的邮件选择一条到达适当的目的传输程序的路由。它接收一个来自MUA的邮件,解释其邮件地址,将该地址重新改写成合适下一个传输程序的格式,然后引导邮件到达正确的传输程序。sendmail将最终用户与这些细节隔离。如果邮件地址正确,sendmail就认为其可以正确地发送并进行传输。同样,对于一个进入的邮件,sendmail将先解释其地址,然后将邮件传送到本地用户的邮件程序或发送到另一个系统。
当sendmail调用一个本地投递代理时,sendmail会试图将邮件发送到接收用户的邮箱,即/var/spool/
当setadmail调用的是TCP/IP邮件传输程序时,它就会向远端主机的TCP 25端口请求建立连接。如果连接成功,将使用SMTP协议进行邮件传输;如果连接失败(可能有多种原因,最常见的原因是对方主机已经关机),sendmail就将邮件放在邮件队列中(/var/spool/mqueue),等晚些时候再重新发送(默认为1小时)。默认情况下,邮件在队列里保持3天,3天之后将其自动删除,并将邮件退还给发送者。当在邮件处理过程中出错时,sendmail将重发邮件。
管理员可以通过修改/etc/sysconfig/sendmail文件中的QUEUE=1h设置邮件队列中邮件的发送周期,并可以使用mailq命令查看邮件队列/var/spool/mqueue。
要查看sendmail自运行开始直到目前为止收发信件的统计信息可以使用mailstats命令读取非文本文件/etc/mail/statistics的内容。
3.如何配置和管理sendmail? 答:(1)sendmail的配置方法:
[1]sendmail运行的两个守护进程在运行时会读取后缀为cf的配置文件,该配置文件的配置语法相当复杂,因此要一般用户重新完整地编写cf配置文件是相当困难的。一般可以先编写后缀为mc的宏配置文件,然后由通用工具m4将宏配置文件转换为cf配置文件。
[2]Fedora 9默认安装的sendmail提供了对sendmail数据库的支持。要使用其他sendmail数据库必须在配置文件中进行声明。默认的sendmail.mc文件的配置如下:
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
24
FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl
FEATURE(`access_db', `hash -T
使用sendmail数据库的好处是不用修改cf配置文件,也不用使用m4配置文件生成cf配置文件。一旦配置文件增添了对sendmail数据库的支持,许多配置修改就可以在sendmail数据库中进行,sendmail进程会自动读取sendmail数据库中的配置内容。
(2)管理sendmail:
[1]配置带SMTP认证的sendmail 步骤1:修改sendmail.mc
#cd /etc/mail; #vi sendmail.mc 找到如下的行
DAEMON_OPTIONS(’Port-smtp,Addr=127.0.0.1,Name=MTA’)dnl 将其修改为
DAEMON_OPTIONS(’Port-smtp,Addr=0.0.0.0,Name=MTA’)dnl 目的是使sendmail监听所有的网域(只是监听,不是RELAY)。 找到如下的行
dnl TRUST_AUTH_MECH(’EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
dnl define(’confAUTH_MECHANISMS’,’EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
将其修改为 TRUST_AUTH_MECH(’EXTERNAL DIGEST-MD5 CRAM-HD5 LOGIN PLAIN‘)dnl
deflne(’confAUTH_MECHANISMS’,’EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
修改后保存并退出vi。 步骤2:生成cf文件
#m4 sendmail.mc > sendmail.cf
步骤3:在文件/etc/mail/local-host-names中添加本地域 #vi /etc/mail/local-host-names 在其中添加如下的行 mail.bill.net bill.net
步骤4:重新启动sendmail #service sendmail restart 步骤5:测试
#sendmail -d0.1 -bv root |grep SASL
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
配置好了带SMTP认证的sendmail服务器之后,可以利用Foxmail、MS Outlook等进行测试。
[2]使用sendmail的access数据库
25
使用sendmail的access数据库可以配置邮件中继,如果像上面那样设置了SMTP认证,就不必在Access数据库中开启邮件中继了。但是正确地使用Access数据库的一些功能,可以在一定程度上防止垃圾邮件。
sendmail在运行时会读取/etc/mail/access.db文件的内容,并根据文件中的配置决定是否中继或拒收邮件等。/etc/mail/access.db是一个散列表数据库,它是用/etc/mail/access文件产生出来的,因此用户使用数据库时只需编辑修改该文件,然后再根据该文件重新生成access.db就可以了。
/etc/mail/access文件每一行的格式为: <地址> <操作>
以下步骤可以修改/etc/mail/access,然后生成/etc/mail/access.db。 a. 进入sendmail配置目录
#cd /etc/mail
b. 编辑/etc/mail/access
#在其中添加对本地域的中继 Connect:bill.net Connect:192.168.1.1 #设置允许中继的其他网域
RELAY RELAY
Connect:http://m.wodefanwen.com/ RELAY Connect:tom.com RELAY #阻挡要拒收的网域、IP地址或E-mail地址 Connect:192.168.9.0 DISCARD Connect:192.168.0.100 DISCARD Connect:Jork@flg.com REJECT Connect:Sexual.com DISCARD c. 然后使用makemap命令生成/etc/mail/access.db
#makemap hash access.db < access
当同时设置了access数据库和SMTP认证后,sendmail的工作过程为: a. 判断收件人是否有本机账号,若有则收,否则执行(2)。
b. 依据/etc/mail/access.db,若有相关设置则执行相关动作,否则执行(3)。 c. 启动Cyrus-SASL的机制判断用户账号及口令,若邮件用户提供的口令可以验证则中继(Relay)该邮件,否则执行(4)。
d. 将原信件退给发信者。
[3] 设置邮件别名
使用别名是sendmail最重要的功能之一,它的使用虽然简单,但却能发挥强大的功能。由于在默认的mc配置文件中有如下的设置:
define(‘ALIAS_FILE’,’/etc/aliases’)dnl
所以,sendmail的别名被定义在/etc/aliases文件中。可使用命令:
#man aliases
获得对/etc/aliases的帮助。aliases是一个文本文件,每一行的格式如下: alias:recipient[,recipient,?]
其中,alias为邮件地址中的用户别名,而recipient是实际接收该邮件的接收者,它可以是:本地用户名、其它的别名、邮件地址、含绝对路径的本地文件、以|开始的命令名或以:Include:开始的文件名。aliases文件影响整个系统,应由管理员设置。在设置/etc/aliases
26
文件时,应避免死循环,如果出现死循环,则在邮件转发指定次数后,退还给发信者。
定义别名主要有以下作用: a.为单个用户定义别名
为单个用户定义别名可以采用以下方式: sw:davidsong sy:s11 sql:s12
b.利用别名来保护登录账号
管理员可以使用别名来防止用户帐号泄露。比如可以将用户david的登录帐号设为s12,而其他对外的电子邮件帐号可以是david,则在别名文件中添加如下行即可:
david:s12 c.转发邮件 例如,主机mail.bill.net上的用户xyz到了另一个单位工作,其新帐号为xyz@xxx.com.cn,那么,原单位的管理员可以在别名文件中添加如下内容:
xyz:xyz@xxx.com.cn
这样,发送到xyz@bill.net的邮件会由主机mail.bill.net自动转发到xyz@xxx.com.cn。 如果像下面这样设置的话:
david:david@anotherone.com. REDIRECT
那么发送给用户david的邮件不会被自动转发给新地址david@anotherone.com,而是被退回发信人,同时通知用户david地址已改变为david@anotherone.com。
d.实现邮件列表
实现邮件列表是别名最重要的功能之一。使用邮件列表,可以利用一个接收者地址向多个用户发送邮件。例如在别名文件中添加以下内容:
zz_group:david,bill,angela,Julia Owner-zz_group:david
那么使用地址zz_group@bill.net就可以给该组的全体用户david、bill、angela和Julia发信。第二行表示这个邮件列表由david负责维护,如果在邮件传输给该组时发生错误,则将错误信息发送给david。
由于sendmail不直接读取/etc/aliases文件,在修改该文件后,必须使用命令 # newaliases 或 # sendmail –bi
生成sendmail所需要的/etc/aliases.db文件。 [4] sendmail配置文件的编译
在sendmail的配置目录内有一个用于对sendmail配置文件进行重新编译的Makefile文件,它的内容如下:
# These could be used by sendmail, but are not part of the default install. # To use them you will have to generate your own sendmail.cf with # FEATURE('whatever') #
POSSIBLE += $(shell test -f bitdomain && echo bitdomain.db) POSSIBLE += $(shell test -f uudomain && echo uudomain.db) POSSIBLE += $(shell test -f genericstable && echo genericstable.db) POSSIBLE += $(shell test -f userdb && echo userdb.db) POSSIBLE += $(shell test -f authinfo && echo authinfo.db)
27
CFFILES = sendmail.cf submit.cf
all: ${CFFILES} ${POSSIBLE} virtusertable.db access.db domaintable.db mailertable.db userdb.db: userdb @makemap btree $@ < $< %.db: % @makemap hash $@ < $< %.cf: %.mc @if test -f /usr/share/sendmail-cf/m4/cf.m4; then \\ umask 022; \\ [ -e $@ ] && mv -f $@ $@.bak; \\ m4 $< > $@; \\ else \\ echo -e "WARNING: '$<' is modified. Please install package sendmail-cf to update your configuration."; \\
fi clean: rm -f *.db *~ start: service sendmail start stop: service sendmail stop restart: service sendmail restart
根据此文件的内容可知,通过它可以编译aliases.db以及所有配置文件,因此用户在做好相关配置后,可以在目录/etc/mail目录内运行make或make all命令来编译、生成所需要文件,必要时可以修改此文件的内容或将其以其它名另存,专用来对修改后的配置进行编译并生成所需文件。
第20章
1.简述Apache的特点。
答:Apache采用了模块化的体系结构,不仅提供了基本的Web服务,而且还具有极强的可扩展性。它拥有以下特性:(1)支持最新的HTTP/1.1通信协议;(2)拥有简单而强有力的基于文件的配置过程;(3)支持通用网关接口;(4)支持基于IP和基于域名的虚拟主机;(5)支持多种方式的HTTP认证;(6)集成Perl处理模块;(7)集成代理服务器模块;(8)支持实时监视服务器状态和定制服务器日志;(9)支持服务器端包含指令(SSI);(10)支持安全Socket层(SSL);(11)提供用户会话过程的跟踪;(12)支持FastCGI;(13)通过第三方模块可以支持Java Servlets。
2.Apache的配置文件分几节,作用分别是什么? 答:Apache的配置文件分有三大节,它们分别是 (1)全局配置节(Global Environment):用于控制Apache服务器进程的全局操作。 (2)主服务器或默认配置节(Main or default server):用于处理任何不被
(3)虚拟机配置节(Virtual Hosts):用于为用户自设的虚拟主机提供配置。
28
用户可根据需要,修改配置文件以建立符合自己需要的httpd服务器。 3.Apache服务器能创建的虚拟主机有几种,优缺点是什么? 答:基于IP地址的虚拟主机和基于名字的虚拟主机。
基于IP的虚拟主机使用连接的IP地址来决定相应的虚拟主机。这样,你就需要为每个虚拟主机分配一个独立的IP地址。而基于域名的虚拟主机是根据客户端提交的HTTP头中标识主机名的部分决定的,很多虚拟主机可以共享同一个IP地址。
基于域名的虚拟主机相对比较简单,且可以节约IP地址,因为只需要配置DNS服务器将每个主机名映射到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。如果没有特殊原因而得使用基于IP的虚拟主机不可的话,最好还是使用基于域名的虚拟主机。
4.如何检测Apache已经安装成功? 解:
(1)使用httpd管理命令或脚本 service httpd status /etc/init.d/httpd status (2)使用进程管理命令 pgrep httpd pstree -u apache ps -ef | grep httpd
29
正在阅读:
《Linux操作系统》第2版完整习题答案-电子工业出版社01-11
最新初一的生活作文300字合集10篇05-14
小学美术人美版 五年级上册 第13课《拼贴添画》优质课公开课教案04-23
教育学复习的资料 204-21
毕业论文《浅析胎儿利益的人权保护》11-26
畅想未来的作文500字02-05
分析化学第二章课件01-27
2011版NCCN成人癌痛指南08-18
县领导在镇敬老院开院剪彩仪式上的讲话06-11
班主任个人工作计划202103-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 习题
- 操作系统
- 答案
- 出版社
- 完整
- 工业
- Linux
- 电子
- 中学生的自荐信范文大全
- 《3-6岁儿童学习与发展指南》(含五大领域)
- 成语故事典故
- 兴业银行
- PC ABS的生产现状与预测
- 江苏省高校、中专校05-08年新教师岗前培训《高等教育心理学》《教师职业道德理论》《教育法教程》试卷合集
- 网络系统测试规范模版
- 承接查验试题
- 华为交换机端口模式
- 关于1、2、3年级本科生2014-2015学年校设奖学金、荣誉称号申请的通知
- 学校学期总务处后勤工作总结
- 我的课堂教学小故事和心得
- 上海市鲁迅中学2017-2018学年高二下学期期末等级考试试题(解析版)
- 第二批列入中国传统村落名录的村落名单
- 广西贵港市2017年中考 英语 试题(word文本 无答案)
- 新课标人教版小学数学四年级上册《除数接近整十数的笔算除法》优质课公开课教案 - 图文
- 上海市嘉定区2014学年高三一模数学试卷含答案
- 四年级科学下册复习题汇编
- 北京大学行政管理专业考研工资待遇怎么样?
- 建国初瑞金土改运动中农民各阶层心态探究