版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux系统管理技术手册(第二版)目录Linux系统管理技术手册(第二版)1第一部基本管理技术4第一章从何入手41.2Linux同UNiX的关系41.3历史上的Linux51.4Linux的发行版本51.5表示法和印刷约定81.6从哪儿获得信息91.7如何找到和安装软件121.8系统管理员的基本任务131.9重压下的系统管理员151.10推荐读物151.11练习16第二章引导和关机162.1引导162.2引导PC162.3引导加载程序:LILO和GRUB162.4引导单用户模式172.5启动脚步172.6重新引导和关机17第三章超级用户的权利173.1.文件和进程的归属关系173.2.超级用
2、户173.3.选择root的口令173.4.成为root用户173.5.其他的伪用户18第四章进程控制183.1.进程的组成部分183.2.进程的生命周期193.3.信号193.4.KILL和KILLALL:发送信号193.5.进程的状态nice和renice:影响调度优先级193.6.PS:监控进程193.7.TOP:更好地监视进程193.8.PROC文件系统193.9.STRACE:追踪信号和系统调用193.10.失控进程193.11.推荐读物19第五章文件系统19第六章添加新用户20第七章增加硬盘20第八章周期性进程20第九章备份20第十章系统日志与日志文件20第十一章软件和配置管理20
3、第二部网络管理技术20第一章TCP/IP网络21720第二章路由选择27921第三章网络硬件21第四章域名系统31021第五章网络文件系统39722第六章共享系统文件41022第七章电子邮件22第八章网络管理和调试52123第九章安全54123第十章Web主机托管和Internet服务器57824第三部其他管理技术59224第一章X窗口系统59324第二章打印60824第三章维护与环境63224第四章性能分析64125第五章同Windows协作65425第六章串行设备67025第七章驱动程序和内核69126第八章守护进程70426第九章管理政策与策略72026第一部 基本管理技术第一章 从何入
4、手下面通过如下5种方式向读者提供帮助l 概述几种主要的系统管理系统,确定每种管理系统的不同组成部分,并且解释他们怎样一起发挥作用;l 介绍一些通用的管理技术,我们根据经验发现这些管理技术既有效又有益;l 帮助读者选择解决方案,随着站点规模和复杂性的增加,这些解决方案仍然行之有效;l 帮助读者从各种想法中汲取精华,剔除糟粕,并且告诉读者由版本发布者造成的各式各样的错误;总结一些共同的处理步骤,以使读者不必为了完成简单的任务而深究手册中的过多细节。1.1 读者的知识背景要求读者已经具备一定程度的Linux或者UNIX经验。尤其是在学习管理知识之前,读者应该从用户的角度对Linux的风格有一个一般性
5、的概念,有一些优秀的书籍可以帮助读者迅速掌握这些概念,参见本章1.10节。 用户要执行的大多数管理任务都是通过编辑配置文件和编写脚本完成的,因此读者必须熟悉某种文本编辑器。我们极力推荐使用 vi。 对于管理的工作的主要支柱之一是使用脚本来自动完成管理任务。要成为高效的管理人员,必须能够阅读并修改Perl和sh脚本(在Linux下实际上是bash脚本)。 对于编写新脚本,我们推荐使用Perl或者Python。作为一种编程语言,Perl有些奇怪。不过它确实包含了许多对于管理员来说是必不可少的特征。本章1.10节给出了参考书的完整信息。从可以了解到有关Perl语言的所有精选软件。 许
6、多管理员更愿意使用Python而不是Perl,而且我们也知道有些站点正在一起努力从Perl转向Python。Python是一种比Perl更精炼的语言,而且Python脚本往往可读性更好,也更容易维护。1.2 Linux同UNiX的关系 在一句话里同时用Linux和UNIX这两个称谓就仿佛一脚踏入了政治漩涡,或许也像是陷入了一大片泥潭。我们尽可能简单的描述一下。 Linux重新实现了UNIX,也丰富了UNIX。Linux遵循POSIX(可移植操作系统接口Portable Operating System Interface)标准,能够在几种硬件平台上运行,兼容现有的大多数UNIX软件。它同大多数
7、别的UNIX变体的不同之处在于,它是自由的,开放源代码的,而且是由成百上千不同的个人和组织无私奉献协同开发出来的。Linux融入了在原来的UNiX版本中所没有的技术改进,所以它超出了克隆UNIX的范畴。从法律意义上讲,他也是一种有别于UNIX的东西,严格来说不能称之为“Unix”。 还值得一提的是,Linux不是现今世界唯一的自由UNIX版本。FreeBSD、NetBSD和OpenBSD,以及从UC Berkeley的BSD(Berkeley Software Distribution)发展而来的所有分支,都有各自的热诚追随者。虽然这些操作系统从第三方软件厂商得到的支持有点少,但他们在功能和可
8、靠性上却往往可以和Linux相媲美 Linux 软件就是UNIX软件。多亏有了GNU(GNU软件可以自由地“使用、复制、修改和发布”)计划,使UNIX系统更富有价值的重要软件大多数都以某种开源软件代码的形势被开发出来。在Linux和非Linux系统上运行的代码是相同的。比如说,Web服务器Apache全然不在意它是在Linux上还是在HP-UX上运行的。从应用软件的立场来看,Linux只不过是得到最好的支持的UNIX变体之一罢了。 UNIX和Linux系统用于生产环境已经有许多年了。同其他大多数介绍Linux系统管理的书不同,本书着重介绍如何在一个工作环境中有效地使用Linux。1.3 历史上
9、的Linux Linux源自于芬兰研究生Linus Torvalds在1991年的一项个人计划。他最初构想的这个项目是要作为Minix的一个有限分支,Minix是由Andrew S。Tanenbaum编写的一种模型操作系统。但是Linux引发了世界上对它的普遍浓厚兴趣,内核很快呈现出了它自己的生命力。利用协作开发的巨大力量,Linux得以实现更富有雄心的开发进度。1.0版内核于1994年发布。现在内核稳定版是2.6 因为iLinux继承了其祖先UNIX的太多东西,所以把Linux时代的开端算做1991年并不算非常公正。UNIX的历史要追溯到几十年前的1969年,他源于当时在AT&T贝尔实验室中
10、的一个研究项目。1976年,UNIX被无偿向大学开放,因而成了许多操作系统课程和学术研究项目的基础。 1977年,加州大学伯克利分校的计算机系统研究小组(Computer system research group,CSRG)从AT&T获得了有许可证的代码,自此成为伯克利Unix(Berkeley UNIX)的开端。伯克利的发布版本(称为BSD,代表Berkeley Software Distribution)从1977年用于PDP-11的第一个版本1BSD开始,到1993年以最高版本4.4BSD结束。 随着UNIX获得了商业上的认可,源代码许可证的价格迅速攀升。最后,伯克利制订出长期目标,要
11、从BSD中出去AT&T(与汇编有关)的代码,这是个单调乏味而且耗时的过程。在这项工作即将完成时,伯克利失去了研究操作系统的资金支持,于是CSRG被解散了。 在解散以前,CSRG发不了其不含AT&A代码的最终软件包,即4.4BSD-Lite。目前大多数BSD UNIX的版本(包括FreeBSD、NetBSD、Moc OS X2和OpenBSD等)都宣称4.4BSD-Lite软件包是它的“鼻祖”。 大多数其他的流行UNIX版本(包括HP-Ux和Solaris)都是有原AT&T代码“血统”的后代。Linux并没有和AT&T或者BSD风格的UNIX共享代码,但是功能上看,Linux系统的位置则介于两者
12、之间。1.4 Linux的发行版本 Linux不同于其他UNIX变体的原因在于,它只定义了一个操作系统内核。内核必须同命令,守护进程(daemon)以及其他软件一起打包(packaged)来组成一个可以使用的完整操作系统用Linux的术语来说就是一个“发行版本(distrbution)”。所有的Linux发行版本共享相同的内核源,但是和内核一起的辅助材料则随着发行版本的不同而有很大不同。参考30.16节开始的内容了解关于发行版本的更多说明。 上述的“辅助材料”由过去30年里成千上万开发出的大量软件所构成。一直以来都存在有这样的争议,即把完整的操作系统简单地称为“Linux”的做法没有让那些开发
13、人员的贡献的到承认,也没有体现出他们工作的历史延续性,这种争议还是有道理的。遗憾的是,最常被推荐采用的替代称谓“GNU/Linux”也有了它自己的历史包袱,所以只有Debian这个发行版本正式使用它。在维基百科“GNU/Linux naming controversy(GNU/Linux称谓的争议)”这个词条中列出了争执双方各自的理由。 各发行版本在侧重点,支持度和流行度方面都不仅相同。表1.1列举了最流行的通用发行版本。这些发行版本按字母顺序而不是按优先或者流行度来排列。 表1.1最流行的通用Linux发行版本发行版本Web站点说明CentOS模仿Red Hat
14、Enterprise Linux 的免费发行版本D一种流行的非商业性质的发行版本FedoraF从Red Hat Linux分出的非商业运作的发行版本G基于源代码的发行版本M对用户最友好的发行版本之一OpenSUSE模仿SUSE Linux Enterprise的免费发行版本Red Hat ERED Hat Linux的公司商业化运作的发行版Slackwarewww.
15、稳定,基础而原始的发行版本SUSE Linux E/Linux在欧洲流行的多语言发行版本TurboL在亚洲流行的多语言发行版本UDebian的精炼版本 Knoppix()是表1.1之中没有列出的一种很有用的发行版本,这个版本的Linux保存在一张可以启动的CD-ROM上。它最重要的价值在于,当某个Linux系统因为安全或者技术问题而无法启动的时候,可以用作恢复光盘使用。可启动光盘的概念得到广泛的认同,绝大多数发行
16、版本都开始朝着这个方向转变。现今的Ubuntu就可以从发行光盘启动,Knoppix的作用变得越发不重要了。从/content/livecd.php可以找到可启动Linux发行版本的最新清单。 在过去将近十年的时间里,Red Hat公司一直是Linux界的领头羊,它的发行版本在被埋地区最有影响力。到了2003年,Red Hat Linux发行版本分裂成了两种,一种是以产生应用为中心的产品线,叫做Red Hat Enterprise Linux(简称RHEL),一种是依托Linux社群的开发项目,叫做Fedora。在技术、经济、后勤和法律等诸多因素的综合作用下,
17、才促成这次分裂,但时至今日,两方面的发行版本依然保持着相似性。RHEL提供大量支持,而且稳定性好,但是如果不向Red Hat公司支付许可费,则无法有效的使用它。 CentOS项目()收集了Red Hat为遵守各种许可协议(最 知名的就是GNU的GPL许可证)而必须公布的源代码,把这些源代码整理成一个类似于RHEL,但是却免费的完整发行版本。这个发行版本没有Red Hat的商标,也没有个别一些专有工具,但是其他各方面都和RHEL相似。CentOS追求同RHEL在二进制乃至bug上面的全面兼容。 对于那些想要部署一个面向生产应用的发行版本,但又不想向Red Hat公司交
18、钱的地方来说,CentOS是一种很好的选择。采用混合搭配的方式也是可行:前端服务器运行RHEL,使之获得Red Hat公司的良好支持,而后面则运行CentOS。这样的安排即照顾到让重要的基础系统获得安全保障和技术支持,又将成本和系统管理的复杂度降至最低。 Suse现在属于Novell公司,最近走上了和Red Hat一样的路子,分裂成两种相关的发行版本:openSUSE,只包含自由软件;SUSE Linux Enterprise,要花钱购买,包含正规的支持渠道,并且多提供了一些额外的东西。以前,SUSE似乎在有意回避它有免费版本的实施,但是Novell已经比其前任更为支持SUSE的这个免费版本。
19、现在读者可以访问获得最新的信息。本书不针对那种Suse的发行版,统称为SUSE。 Debian和Ubuntu这两种发行版本都保持着支持Linux社群开发和开放访问的思想意识,所以两者读不存在任何有关自身那部分自由,那部分可以重新发布的问题。Debian在GNU社群的热情支持下生存了下来,而Ubuntu目前还在享受南非企业家Mark Shuttleworth的慈善资助。Ubuntu甚至无需读者支付邮费就可以邮寄免费的光盘。2.1.1 最好的发行版本是什么 在网上随便搜索一下,就会发现这是问得最多,答的最少的Linux问题之一。对于读者来说,正确的答案取决于你要怎样
20、使用系统、你说熟悉的UNIX变体是什么,以及你对支持的需求。 大多数Linux发行版本能够完成你想要让Linux系统完成的所有任务。他们中的一些可能要求安装附加的软件来获得完整的功能,有些可能会让某些任务更容易完成。然而,他们之间并不会有太大不同。实际上,为是么会有那么多种不同的发行版本,且每种都宣称“易于安装”和“丰富的软件库”是其突出的特色,这本身就是一件挺奇怪的事情。于是难免会得出这样的结论,人们只不过是喜欢做出新的Linux发行版本罢了。 另一方面,既然我们在本书中所关注的是大型Linux安装的管理问题,那么我们就会侧重考虑像RHEL这样用于管理计算机网络的发行版本。有些发行版本的设计
21、考虑到了生产环境,其他的发行版本则没有。面向生产环境的系统所提供的额外支持功能,对于方便系统管理工作来说,带来了 巨大的不同。 当用户采用了一种发行版本之后,就是在某个特定发行商的做事方式上进行了投资。不要只看到软件安装以后的功能,而是要明智地考虑到,自己的单位和那家发行商要在未来的数年里合作。因此要取得一些重要问题的答案。l 该发行版本能够在今后5年内继续存在吗?l 该发行版本会有最新的安全补丁吗?l 该发行版本会迅速发布更新软件吗?l 如果我有问题,发行商会帮助我吗? 有了这样的认识再来看,有些更有意思、规模更小的发行版本就不会太有吸引力了。另一方面,最有生命力的发行版本并不一定是最商业化
22、的发行版本。例如,我们认为Debian并不是一家公司,既不销售任何东西,也不正式提供所需的支持。 在/dist和上都可以找到Linux发行版本的完整清单,其中也包括非英语的发行版本。 在本书中,我们采用5种流行的Linux发行版本作为例子:RHEL、Fedora core、SuSE linux Enterprise、Ubuntu。这些系统是企业级Linux市场的代表,他们合起来占据了如今在大型站点中投入使用的Linux的大部分。2.1.2 特定于发行版本的系统管理工具 许多发行版本提供了可视化的工具(比如Red Hat的Network A
23、dministration Tool或者SUSE的YaST2),帮助用户配置或者管理选定的系统功能。这些工具非常有用,特别是对于管理员新手来说更是如此,但是他们倾向于掩盖用户在进行改动时实际发生的细节。在本书中,出于下述原因,我们要介绍可视化工具调用的底层机制,而不是工具本身。 第一,可视化工具趋于专有化,或者至少是趋于为发行版本所特有,他们给配置过程带来了变数,而在各个发行版本之间,这些过程在较低层面上实际上可能是相当一致的。第二,我们相信,对于系统管理员来说准确了解他们系统是如何工作的非常重要。当系统发生故障的时候,可视化工具通常对于确定并修正问题来说没有什么帮助。最后,手工配置往往更好、
24、更快、更灵活、更可靠,而且更易于脚本实现。1.5 表示法和印刷约定在本书中,文件名、命令和命令的参数用粗体(黑体)来表示;占位(例如,不应该按字面直接照搬的命令参数)用斜体来表示。例如,在下面的命令中 :cp file directory用户应该用实际的文件名和实际目录来分别替换file和directory。配置文件和终端会话的节录用等宽字体来显示。有时候,我们用斜体字来给交换式会话做注释,例如:$grep Bob /pub/phonelist/*查找Bob的电话号码*/在这些特定情况以外,我们试图把特殊字符和格式约定减到最少,只要我们这样做不会影响理解即可。例如,我们经常会提到的一些词条,比
25、如叫做daemon的Linux组和打印机anchor-lw等,根本不采用特殊格式。一般说来,我们实用的约定与联机用户手册中用来表示命令的语法相同:l 中括号(“”和“”)之间的任何内容都是可选的;l 英文省略(“”)后面的任何内容都是可以重复的;l 大括号(“”和“”)表示应该选择由竖线(“|”)隔开的各项中的一个。 例如,规则:bork =x on | off filename 可以匹配下面任何一条命令:bork on /etc/passwdbork -x off /etc/passwd /etc/termcapbork off /usr/lib/tmac我们将shell风格的特殊字符用于模
26、式匹配:l 星号(*)匹配零个或多个字符;l 问号(?)匹配一个字符;l 中波浪线()表示当前用户的主目录(home);l user表示user用户的主目录。例如,我们会采用速记模式/etc/rc*.d来指代Debian的启动脚本目录/etc/rc0.d、/etc/rc1.d等。引号中的文本经常具有确切的技术含义。在一些情况下,我们忽略英语的一般规则,把标点符号放在引号外边,以使读者不会对什么包括而什么不包括在引号中产生混淆。1.6 从哪儿获得信息Linux的文档分布在一系列资源中,读者会发现其中有些已经安装到了自己的系统中,而有些还留在网上。较大的资源有:l 手册页(man页),用命令man
27、阅读;l Texinfo文档,用命令info阅读;l HOWTO,就各种不同主题发表的简短说明;l Guide,就各种不同主题发表的较长论述;l 特定与发行版本的文档;l 同特定的软件项目有关的Web网页。Man手册页和Texinfo文档构成了传统的“联机”文档(当然,所有的文档都以这样或者那样的形式在线存在)。这些文档一般伴随系统一起安装,针对特定程序的man手册页通常随着新软件包一同安装。Man手册页对单条命令、驱动程序、文件格式或者库例程做简洁的描述。他们不会解释诸如“我该怎样安装一个新设备?”或者“为什么我们的系统这么慢?”这样较为普通的话题。对于这些问题来说,用户必须参考HOWTO。
28、Texinfo文档是在很久以前由GNU人士发明的,针对的是设定man页面格式的nroff命令为AT&T专有这一现实情况。现在,我们已经有了GNU的groff来为我们完成这项工作,nroff的问题不再重要了。遗憾的是,许多GNU软件包坚持用Texinfo文件而不是man页面来提供自身的文档。Texinfo除了为文档规定了不必要的标准之外,其自身也表现为一种相当错综复杂的超文本系统。HOWTO和guide是由Linux建档计划(Linux Documentation Project,LDP)维护的。LDP是所有各类Linux有用信息的中心知识库。它也集中力量将Linux的相关文档翻译成其他语言。特
29、别针对系统管理而言,一些免费的在线LDP guide有:Lars Wirzenius、Joanna Oja、Stephen Stafford和Alex Weeks编写的The Linux System Administrators Guide;Mendel cooper编写的The Advanced Bash-Scripting Guide;Olaf Kirch和Terry Dawson编写的The Linux Network Administrators Guide,Second Edition;以及Steve Frampton编写的Linux System Administration M
30、ade Easy。遗憾的是,许多LDP文档现在并没有得到持续维护。因为Linux的时间概念相对于真实的时间来说要短得多,被忽略掉的文档容易很快过时。一定要查看HOWTO或者guide上的时间戳,并据此估计它的可信度。Linux基本软件中最重要的部分里有许多是由中立的第三方来维护的,比如Internet软件联盟(Internet Software Consortium)和Apache软件基金会(Apache Software Foundation)。这些组织一般为他们所发布的软件包提供充足的文档。发行版本有时包含了软件,但却给文档打了折扣,于是,到软件原本的发源地看看有没有更多的材料常常会有所帮
31、助。有关许多Linux软件包设计原理的另一种有用信息源是“RFC(Request for Comments,请求评议)”系列文档,他们描述了在Internet上使用的协议和过程。参考第12章了解更多的信息。2.1.1 手册页的组织Linux的手册页一般分为9节,如表1.2所示。表1.2Linux手册的各节及其内容节内容节内容1用户级命令和应用程序6游戏和演示2系统调用和内核出错代码7各种文件和文档3库调用8系统管理命令4设备驱动程序和网络协议9少见隐秘的内核规范和接口5标准文件格式手册页中有些节会做进一步细分。例如:第3M节经常包含了有关系统中数学库的手册页。地6节和第9节一般是没有内容的。很
32、多系统在手册中都有一个称之为1的节,用于本地手册页。另外一个惯用的约定是把第“n”节作为特定于软件的子命令(例如bash的内建命令)。 手册页的nroff输入通常保存在/usr/share/man/manX目录中,X是19的数字,或者是字母1或n。正常情况下,页面会以gzip压缩,以节省空间(命令man知道如何当场将他们解压缩)。手册的格式化版本保存在/var/cache/man/catX目录中。命令man会随需要确定手册页格式;如果cat目录可写,那么man也将在创建格式化页面的同时,把经过格式化的页面存放到cat目录中去,从而生成一个常读手册页的高速缓存。 命令man实际上会在若干不同的目
33、录中寻找用户需要的手册页。用户可以使用manpath命令来确定搜索路径。这个搜索路径(在Fedora中)一般为: $manpath/usr/Kerberos/man;/usr/local/share/man;/usr/share/man/en;/usr/share/man 如果有必要,用户可以设置自己的环境变量MANPATH来覆盖默认路径。用户也可以在/etc/man.config(RHEL和Fedora)或者/etc/manpath.config(SUSE,Debian和Ubuntu)中设置系统的默认搜索路径。2.1.2 Man:读取手册页 Man title命令格式化特定的手册页并通过le
34、ss命令(或者在PAGER环境变量中指定的任何程序)把手册页发送到用户终端。Title通常是一个命令、设备或文件名。手册中的各节大致是按照数字顺序进行搜索的,不过通常首先搜索描述命令的那些节(第1、8和6节)。 命令格式man section title可让用户从么个特定的节获取手册页。于是,man tty 命令可得到tty命令的手册页,man 4 tty命令可得到针对控制终端驱动程序的手册页。 Man -k keyword输出一份手册页清单,在其单行概要中有keyword。例如:$man -k transalate2.1.3 其他的Linux信息资源 在世界上有一个巨大的Linux爱好者群体
35、。我们不可能说出每一处有用的Linux信息资源,或只是主要的资源,但是在表1.3中给出了几个很重要的信息资源。 不要羞于访问普通的UNIX资源大多数信息都能直接用于Linux。在网上可以获得有关系统管理的丰富信息,形式非常多样。例如,用户可以再任何流行的搜索引擎,比如Google、Yahoo!或者Ask中键入系统管理方面的问题。在第30章中可以找到一份其他“入门”资源的清单。表1.3web上的Linux资源Web站点说明L新闻巨头Slashdot针对Linux的技术支持网站LLinux和开放源代码方面的新闻集散地L
36、inux和Unix软件的海量索引库Linux内核的官方网站Linux信息交流地(非官方)另一个Linux信息交流网站(非官方)有关内核的信息和补丁的汇编Computerworld人士办的在线杂志包含Linux内核的多平台软件库许多站点直接迎合了系统管理员的需要。下面是我们特别喜爱的几个站点:l UNIX Guru Universe(UNIX高手世界),有许多系统管理的资料;l www.stokely.
37、com系统管理员资源链接的好集合;l Windows和Mac软件,按质量进行了筛选;l “计算机迷”的新闻“集散地”;l Perl脚本和库的中心资源库;l S安全信息,巨大而且可以搜索的安全漏洞数据库。 另一个有趣且有用的资源是Bruce Hamilton的“Rosetta Stone”网页,地址为/rosetta.html。它提供了在许多不同成都操作系统上执行各种系统管理任务所使用的命令和工具的指导。1.7 如何找到和安装软件 大多数Linux发行版本把它
38、们的软件分成可以彼此独立安装的软件包。当用户在一台新的计算机上安装Linux的时候,一般要选择一定范围的“起步”软件包,把它们复制到新的系统上。 这种体系简化了系统配置许多方面的工作,也是Linux优于UNIX传统版本的关键点之一。遗憾的是,这种设计也使得写书介绍这些发行版本的任务复杂了,因为总是不能确切地搞清楚那些软件是某个给定发行版本的“一部分”。如果一个软件包在安装光盘中,但又不是默认安装的一部分,他还算是该发行版本里的软件包吗?如果它只在发行版本的超级版“奉送”光盘上才有,那么它算是该发行版本里的软件包吗? 在本书中,我们一般介绍每个所举例子的发行版本的默认安装。当我们说某个特殊软件包
39、没有包含在默认安装里的时候,并不一定意味着该软件包不会出现在读者的系统上,或者读者的发行版本不支持它。下面就讲一下,如果读者有该软件,如何它找出来,如果读者没有该软件,那么怎样得到它。 首先,使用shell的which命令来找出相关命令是否已经在搜索路径中。例如,下面的命令揭示出GNU的C编译器已经安装在了本机的/usr/bin目录下: $which gcc /usr/bin/gcc 如果which没有找到要找的命令,那么试试whereis,该命令搜索更大范围的系统目录,和shell的搜索路径无关。还要注意,有些系统上的which命令不显示用户没有执行权限的文件。例如: $ which ipp
40、pd/usr/bin/which: no ipppd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/usr/local/mysql/bin:/root/bin:/usr/local/libnet/bin:/root/bin:/usr/local/net-snmp/bin:/usr/local/php5/bin/:/home/ssh-user/bin) $ whereis ipppdipp
41、pd: /sbin/ipppd /usr/sbin/ipppd /usr/share/man/man8/ipppd.8.gz 另一种方法是采取作用非凡的locate命令,它考察预先编译好的一个文件系统索引,以此确定与特定模式相匹配的文件名。它搜索的并不特定与命令或者软件包,而是能够找到任何类型的文件。例如,如果读者不能确定在哪儿能找到头文件shignal.h(它是Linux信号定义的正式代码),可以试试; $locate signal.h Locate的数据库通常由updatedb命令在每天晚上重新生产,这条命令由cron来运行。因此,执行一次locate的结果不是总能够反映出文件系统的新近的
42、变化。 如果用户知道正在找的软件包的名字,那么也可以使用系统上的软件包工具来直接检查是否又该软件包出现。例如,在Red Hat、Fedora或者SUSE系统上,下面的命令可以检查是否有Python脚本语言: rpm q python参考第11章,了解有关在我们举例的系统中软件打包命令的更多信息。如果感兴趣的软件包似乎还没有安装,那么找他的第一个地方就是所有发行版本的自动软件包管理系统。每一种发行版本都支持某种形式基于Internet的升级旧软件包和查找新软件包的系统。最常见的系统有yum和APT,这两种系统将在本书的11.4节介绍。 例如,在使用APT的Debian系统上,就可以用下面的命令获
43、得并安装最新版的Python: #apt-get install python 大多数Linux软件是由独立的小组开发,这些小组以源代码的形式发布软件。接着,Linux发行商收集源代码,按照特定系统上采用的规范来编译,并将二进制编译结果打包。安装特定与发行版本的二进制软件包通常要比取得并编译原来的源代码更简易。但是,发行商提供的软件有时候要比当前的版本落后一两个版本。 两个发行商使用相同的软件打包系统不一定意味着两个系统的软件包能够互换使用。例如,RedHat和SUSE都使用RPM,但是他们的文件系统布局有点儿不一样。如果能得到针对于你的特殊发行版本而设计的软件包,那么就用它,这始终是最好的做
44、法。 如果其他方式没有找到,那么试试在一个下载站点上查找该软件包,或者用该软件包的名字在Google上搜一下。1.8 系统管理员的基本任务 下面各小节简要介绍了一般要求系统管理员履行的若干工作。这些职责未必是由一个人来执行的,在许多地方,这项工作会分配给几个人。不过,确实至少需要一个懂得全部工作,并确保有人正在做这些工作。2.1.1 增加、删除以及管理用户账号 系统管理员负责为新用户增设账号,将不再活动的用户账号删除。增删用户的处理过程可以自动进行,但在增设新用户之前,仍然必须做出某些管理决定(把用户的主目录放在什么位置,那些机器上创建账号等)。参考第6章了解有关添加新用户的更多知识 当某个用
45、户不应该再访问系统时,必须禁用该用户的账号。由该帐号拥有的所有文件必须备份到磁带上并保存起来,以使系统不会随着时间的增长,积累不想要的信息。2.1.2 增删硬件 购买了新硬件或把硬件从一台机器移到另外一台机器上时,必须配置系统,使之识别并使用改硬件。硬件支持的任务可能很简单,例如添加打印机,也可能是复杂的多的任务,例如添加磁盘阵列。参考第七章、第28章和第23章了解有关这些专题的更多知识。2.1.3 执行备份 执行备份可能是系统管理员最重要的工作了,这也是经常被忽视或者不经心去做的工作。备份工作耗时且单调,但又绝对必要。备份可以自动进行并授权给下属去做,但系统管理员仍然要确保备份工作在按计划正
46、确进行(备份产生的介质真的可以用来恢复文件)。参考第9章了解有关备份的更多知识。2.1.4 安装和更新软件 当获得新软件时,必须安装并测试它,并且经常在几种类型的操作系统和硬件下进行安装和测试。一旦软件能够正常工作,就必须通知用户可以用它,以及它的位置。在补丁和安全升级被发布出来的同时,也必须平稳地将她们融入到本地环境里。 本地软件应该安装到合适的位置,让用户能容易地把它同系统软件区分开来。采用这样的方式可以简化升级操作系统的任务,因为本地软件将不会被升级过程所覆盖。参考第11章了解有关软件管理的更多知识。2.1.5 监控系统 大型设备需要时刻监控。日常的监视活动包括确保电子邮件和Web服务正
47、常工作、查看日志文件在掌握故障的早期迹象、确保本地网络都连接正确,并监控系统资源(例如磁盘空间)的可用性。2.1.6 故障诊断 Linux系统和运行他们的硬件系统偶尔会发生故障。充当技工来诊断故障以及在必要时请来专家排除故障等就成了管理员的工作职责。找出问题往往比修复更为困难。2.1.7 维护本地文档 系统为合适单位的需要而逐渐改造,随着改造的进行该系统便开始不同于文档当初所描述的那个基本系统了。给整个系统特定于本地环境的各方面建立文档是管理员的职责。这项职责包括为新安装的,但又不是伴随操作系统而来的任何软件编写文档,把电缆的走线位置以及电缆连接方式等信息编写成文档,维护所有硬件维护记录,记录
48、备份状态,编写本地处理过程和策略的文档等。参考30.8节了解相关文档的建议。2.1.8 时刻警惕系统安全 系统管理员必须实施某种安全策略并定期检查,以确保系统安全没有受到侵害。在安全要求低的系统上,这项工作任务可能仅仅包括对非授权访问进行粗略的检查。在安全要求高的系统上,这可能包括仔细布置陷阱和审计程序的监视网。有关安全主题的更详细信息,请参见第20章。2.1.9 帮助用户 尽管帮助用户解决各种问题很少包括在系统管理员工作的规定范围之内,但这通常占据了多数系统管理员日常工作的很大一部分。系统管理员往往遇到从“我的程序昨天正常工作了,今天却不干活了!你改变了什么?”到 “我把咖啡洒在键盘上了!”
49、等形形色色的问题的狂轰滥炸。1.9 重压下的系统管理员 系统管理员通常有多种身份。在现实生活中,系统管理员经常从事其他工作,但同时又被请来管理身边的一些计算机。如果你是处于这种情况,那么也许想要考虑一下这种兼职最终可能出现的情况。 你对你的系统懂的越多,那么用户群体对你的依赖就越多。网络规模总是在增长,你可能不得不花费更多的时间在系统管理上。很快,你就会发现在你所在的机构中,你成了唯一懂得这样去执行各种重要任务的人。 一旦同事们开始把你看作是本地系统的管理员,那时要把自己从这种角色中解救出来就很困难了。我们知道有几个人为了逃避这种状况已经改变了自己的工作。由于许多管理任务是无形中的,你可能发现
50、自己所在的单位希望你即成为一名全职的系统管理员,同时也成为全职的工程师、作家或秘书。 有些不乐意这样做的系统管理员通过不好的态度和服务来摆脱这类要求,我们不推荐这种方法。这种方法有损自己的形象,并且可能产生更多问题。 相反,我们建议你把花费在系统管理上的时间用文档的形势写出来,你的目标应该是保持其工作处于可以管理的水平,而且应该搜集让你在申请减轻管理任务时用得上的证据。在大多数单位里,你需要游说管理层半年到一年的时间以后,才可能让自己的管理员位置由别人来取代,因此应该提前计划好。 另一方面,你可能发现自己喜欢系统管理员的工作,并希望成为全职的系统管理员,那么找到一份工作将不会有什么问题。请参考
51、第30章,以预先了解可能出现的一些“恐怖”问题。l 系统管理员人格综合症作为系统管理员,由于其工作而导致的不幸却常见的临床症状是“系统管理员人格综合症”。 有许多医疗方法可以用来治愈这些不幸的症状。最有效的是培养良好的幽默感和营造一个小而丰富的办公室酒窖。还可以考虑更具思考意味的方法:任何时候,当有人在你傍边说“服务器是不是又死机了?”时,让自己静静地向远处眺望,并同时敲击自己的脚后跟。如果所有别的治疗方法都不管用,那么就休假吧。1.10 推荐读物 在出版领域中针对系统管理最好的资源(除去本书外)就是OReilly公司的系列图书。这个系列的图书从20年前的Unix in a Nutshell开
52、始,到现在已经给每个重要的Unix和Linux子系统以及命令都单独除了书。这个系列还包括有关Internet、Windows和其他非Unix专题的图书。所有这些书都价廉物美、内容及时而且针对性强。Tim OReilly对开源代码运动相当有兴趣,为此专门搞了一个OSCON大会,而且还为其他的一些技术潮流搞了大会。OSCON每年召开两次,美国一次,欧洲一次。 虽然市场上有许多介绍性的Linux书籍,但是尚未发现值得我们毫无保留地给于推荐的书。一般而言,读者最好找到UNIX的“经典著作”。你读到的几乎每样东西都能等同地用到Linux上。 Linux in a Nutshell、Learning th
53、e vi Editor、Unix power tools、Programming perl、Linux and the Unix Philosophy、The Daemon,the GNU & the Penguin1.11 练习第17页第二章 引导和关机引导自动引导和手工引导引导过程的步骤初始化内核配置硬件内核线程操作员干预(仅限手工引导)执行启动脚步多用户运行引导PC引导加载程序:LILO和GRUBGRUB:全面统一的引导加载程序LILO:传统的Linux引导加载程序内核选项PC上的多重引导GRUB的多重引导配置LILO的多重引导配置引导单用户模式用GRUB引导单用户模式用LILO引导单用
54、户模式启动脚步Init和运行级RedHat和Fedora的启动脚本SUSE的启动脚本Debian和Ubuntu的启动脚本重新引导和关机关闭电源Shutdown:停止系统的妥善方式Halt:关闭系统的更简单方式Reboot:快速的重新启动Telinit:改变init的运行级Poweroff:Linu关闭电源第三章 超级用户的权利 Linux系统上的每个文件和进程都属于特定的用户账号。如果没有得到属主的许可,其他用户就不能访问这些对象,因此,这条约定有助于防止用户彼此之间不管是有意还是无意的错误行为。 系统文件和进程属于一个称为root的虚拟用户,也叫做超级用户。与任何其他账号一样,root拥有的
55、东西也受到保护,不受来自其他用户的干扰。要进行系统管理上的改动,需要使用本章中所描述的访问root账号的各种方法中的一种。 Root账号具有几个“神奇”特性。Root可以充当任何文件或进程的属住,还可以执行一些特殊操作,而其他用户是无权执行这些操作的。这个账号的权限非常大,但如果是没有经过训练的用户或者是心怀恶意的用户使用这个账号的话,将会非常危险。 本章介绍管理员使用超级用户身份的基础知识。第20章介绍怎样避免出现不必要和令人为难的由他人使用超级用户身份的情况。第30章介绍相关的政策和策略方面的内容。文件和进程的归属关系 每个文件都同时有一个属主(owner)和一个“属组(group own
56、er)”。文件的属主拥有一种不和系统上任何用户共享的特殊权限,那就是修改文件访问权限的能力。具体而言,就是属主可以严格地设置文件的访问权限,让其他任何人都不能够访问这个文件。我们将在第5章中讨论文件权限。 尽管文件的属主总是一个人,但许多人都可以成为文件的属主成员,只要他们全部是一个Linux组的成员即可。组原本在/etc/group文件中进行定义,但是现在用户组的信息保存在网络中的NIS或者LDAP服务器上的情形更为常见,参考第17章的内容了解详情。有关组的更多信息请参见6.1节。 文件的属主指定属组成员可以对文件进行那些操作。这种机制能让同一个项目的成员之间共享文件。例如,我们使用了一个组来控制对web站点源文件的访问。 一个文件的这两种归属关系都可以用ls -l filename 命令来了解,例如:$ ls -l-rwxrwx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026小组作业幼师面试题及答案
- 2026烟草计算机面试题及答案
- 2026医院转岗面试题目及答案
- 2026英国高薪面试题及答案
- 预防心理困扰拥抱阳光心灵,小学主题班会课件
- 2026做家教面试题目及答案
- 2026单词陪练师面试题及答案
- 2026海口中学面试题目及答案
- 健康成长:安全知识小学主题班会课件
- 项目延期申请说明信(8篇)范文
- 2026年征兵人格测试题及答案
- 2026江苏盐城市地方立法研究中心选调2人笔试题库附答案详解(考试直接用)
- 住房出租合同范本(7篇)
- 流沙处理方案
- 重性精神疾病患者管理服务规范
- 辽宁某大酒店幕墙工程施工组织设计(铝合金窗、石材干挂)
- 机电材料主辅材界定表
- Q-SY 15004.6-2021 石油石化企业安保防恐防范规范 第6部分:石油天然气管道
- 安全隐患排查监理细则范文
- CJJT 268-2017 城镇燃气工程智能化技术规范
- 教师校园网络安全培训
评论
0/150
提交评论