分享

第七章 系统管理综述

 czs321 2013-02-21


目标

我们在成为一个真正的管理员之前,应该了解“管理的真正含义是什么?管理员应该做什么?”等问题,在这里我们讨论系统管理员的工作职责及管理工作的模式。当系统管理员维护一个Linux系统的时候,涉及到很多的工作,如备份、增加用户、安装和配置软件。本章也介绍了管理员可以利用的Linux文档体系。

 

重点内容

        系统管理员职责

        超级用户

        文档


7.1    系统管理员职责

系统管理员维护一个Linux系统的时候,涉及到备份、增加用户、安装和配置软件等工作。如果是一个小型企业,那么系统管理员的职责一般会覆盖差不多全部与系统相关的工作,包括系统日常维护、保持服务正常运行、面向用户的操作、软件与系统安装升级,和解决复杂的技术问题等。系统管理员要确保计算机能够向用户正常地提供服务。这里涉及到各种类型的工作:

        在系统中增加新用户、配置用户的运行环境,如shell、主目录和各种权限;

        安装新的软件。其中包括应用软件、操作系统的升级、补丁和bug修复等;

        安装新的硬件设备;

        监控文件系统的使用情况,确保系统中有足够的磁盘空间,确保所有的备份正常;

        解决用户的问题,尽量找到问题所在,必要时可以与产品提供商联系来解决问题;

        确保所有网络服务正常运行。如电子邮件和远程系统的存取。

7.2    系统管理涉及的各方面

做为一名系统管理员,需要搞清楚的是,我们的管理职责范围中包括哪些工作?管理的用户有哪些?他们的权限都是什么?

做为一个系统管理员,我们还要考虑另外一些问题:

        谁来负责硬件支持?

        谁会使用系统?

        系统要随时升级吗?

        是否可以申请其他硬件设备吗?

        从哪里可以获得其他的帮助?

7.2.1   用户管理

Linux 系统是一个多用户系统。通过授予不同的用户权限,可以让不同的用户执行不同的任务。如果一个 Linux 系统有很多人使用,管理任务会更复杂,因此需要系统能够支持用户的添加与管理,来完成日常的管理任务。

做为一名系统管理员,一个重要的任务就是合理管理系统上的用户。在Linux 系统中,这些工作主要包括建立账号、设置口令、分配用户使用权限、管理用户组、管理用户磁盘配额以及用户账号的使用期限等等。

7.2.2   设备管理

设备管理包括两部分内容:软件与硬件维护。

硬件设备要发挥其作用,与其在操作系统中的配置是分不开的。我们在安装了新的硬件之后,如一块网卡,就要安装驱动程序,进行相关参数设置,这就是软件设置的问题。同样的硬件由于软件设置有可能在工作效率和状态好坏上都有所区别,正确地对各种硬件进行软件方面的安装和配置对管理员来说是不可忽视的。

系统中的硬件都需要维护。管理员应每隔13个月(取决于系统)做一次预防性的维护工作,这就象汽车与飞机的保养一样,我们需要检查系统的功能是否正常,检查并清洁风扇、主板、磁带机等。一些大型的企业订有硬件维护合同,其中包含出现问题时的快速解决方案,报价中会包括更换某些硬件的费用和人工费用,在公司可以负担的情况我们可以订购,但系统管理员依然需要监督、配合这些外来的保养服务。

7.2.3   网络管理

Linux具备强大、高效而且灵活的网络功能,常常成为网络的心脏和灵魂,向网络中其他计算机提供服务。系统管理员必须保证服务器与网络正常连接并且通讯正常,提供的服务当然也需要正常。网络管理通常包括以下几个方面:

        网络设备配置

以何种方式接入及相关工作。如网卡、MODEMADSL等。

        网络协议配置

通常是TCP/IP设置。如地址、网关、掩码及有关参数。

        基本服务管理

包括DNSNFSDHCPNISXinetd等。

        应用服务管理

包括WWWFTPSamba等。

在关注网络服务正常的前提下,还需要保证系统的性能。维护Linux系统时要经常对系统的性能进行监视和测试,准确无误的进行系统应用和硬件的调优,最大限度的优化系统中计算机的性能使之为用户服务。

7.2.4      软件包管理

              操作系统发挥作用需要依靠软件,Linux也同样涉及大量软件安装的工作。而一般用户所熟悉的在Windows平台上、点击执行程序安装的方式,在Linux计算机中无法使用。做为系统管理员的基本技能之一,如何在Linux平台中进行软件包的安装与管理是必须掌握的。我们需要知道rpmtarballdeb的安装方式,尤其要掌握rpm方式,这是当前最流行使用最广泛的。此外对使用源代码编译的操作也应掌握,做为rpm方式的补充。

7.2.5      日志管理

系统日志是对特定事件的记录。我们会遇到一些奇怪的问题,如网络无法连通、PPP不能用了、X Window无法启动等。这时候通常需要借助日志文件来帮我们解决问题。为了保证系统正常运行,处理每一天可能遇到的各种问题,认真地读取和分析日志文件是系统管理员的一项非常重要的任务。日志对于系统安全来说尤其重要,由于日志记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志可以帮助我们审计和监测,还可以实时地监测系统状态,监测和追踪侵入者等。

我们需要对在Linux系统中的三个主要的日志子系统:连接时间日志、进程统计日志、错误日志有所了解。了解重要的dmesgmessages日志文件,能够读懂其中的信息,并根据其中的内容进行处理操作。同时对日志相关的工具也应掌握和熟练使用。

7.2.6   系统备份

系统中的数据不论对用户还是企业来说,是最有意义和价值的,如果因为系统故障或其它意外,导致数据丢失,那么要花很多时间和精力才能恢复。

系统的备份与恢复是Linux系统管理一项不可缺少的工作。备份工作的目的是为了尽可能快速和方便地恢复单个文件或整个文件系统及相关数据,备份对于文件和数据的安全恢复是非常重要的。一名系统管理员平时养成良好的备份习惯,将对于以后的系统遇到意外紧急故障能否安全恢复运行是非常关键的。

7.2.7      安全管理

随着网络技术的快速发展和应用的日渐普及,骇客工具不仅变得越来越先进,而且也越来越容易被一般人获取和滥用,造成各行各业大量的企业、机构的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。管理员也需要对系统安全有所认识,可以处理常见的安全问题。包括文件系统、网络设置、用户管理等方面的安全问题,也需要学会常见安全工具的使用。

7.3    文档

在刚成为一个系统管理员的时候,由于经验的缺乏,我们往往感到很多问题无法入手。下面的内容给出一些Linux管理中经常使用的获得帮助的方式,大家可以根据自己的情况选用。

7.3.1   Linux相关书籍

现在有关Linux的参考书越来越多,这些资料涉及面广,从Linux快速入门到关于Kernel、编程、NFS/NIS这些专题的介绍,各方面的书都有。如果系统管理员想查阅某些特殊功能或解决某些难题,书籍是很好的参考资料。

对系统管理来说,系统手册是不可缺少的工具,用户要确保有一套。通常这些手册分为两种:

参考书:提供与联机指南一样的信息

指导书:告诉用户如何对系统进行管理,经常会有理论性的讨论以及实际的操作。

7.3.2   Internet

对管理员而言,Internet可以说是最有用的工具。通过聊天室和大型新闻组,用户可以轻松得到Internet上丰富的Linux资源和成千上万的Linux管理员的技术经验。在这里可以提出任何问题,也许几分钟之内就会得到答案。另外,Internet提供了很多免费的最新软件的文档,对管理员们很有用。在Internet上这些文档大多来源于非赢利组织The Linux Documentation Project(TLDP),这个组织发布了很多文档来介绍Linux的特点和应用,还介绍如何安装和配置不同的软件包。

7.3.3   man

man命令可以向用户提供快速的在线帮助,这也是Unix早期的卖点之一。用户可以从“man pages”中得到很多帮助信息。实际上,Unix的很多书籍就是从这些man pages中取得的内容。

Linux是类Unix操作系统,所以Linux包括了一套完整的manman帮助文档。这些man帮助文档涉及Linux系统的命令、程序、配置文件和程序库的功能等说明。一直以来,这些文档都是某些操作系统书籍的主要资料来源,自从有了Internet和图形用户界面后,直接使用这些文档的人减少了,但它仍是很重要的信息来源。操作系统安装好之后,这些文档就可以马上使用。

man的帮助文件有很多个,通常以章节分类,存放在/usr/share/man目录中,每个章节节讨论一项专题,分为man1man2man3.....man9mann等子目录。章节的划分符合AT&T Unix的文档结构,继承了其方便使用的特点,并且保持向后兼容(Unix经常保持向后兼容)。大多数的用户命令可以在man1中找到。

我们可以用以下命令来得到man帮助文档:

$ man <section> 命令名

其中<section>参数是可选的,可以从123....9n中选择。如果系统找到了与之命令名相匹配的命令,man就把帮助文档组织成troff格式(或类似的其他格式)显示出来。如果没有给出<section>参数,有些系统会从所有章节中找到匹配的文档显示出来。

在一个系统中可能会有成千上万的man帮助文档,为了节省磁盘空间,数据文件都是以压缩格式(.gz)存储的,数据文件名的格式是“命令名.section.gz”,例如,“zcat.1.gz”就是zcat命令的帮助文件。如果用户要创建自己的man帮助文档最好也遵循这种格式。

需要注意的是,man的帮助文档常常是过时的,因为更新这些文档是一件吃力不讨好的工作。如果man帮助文档没有更新,管理员会发现系统中有些命令的功能和选项与在线文档上所描述的不同。所以更新重要的系统命令或数据库之后,一定要注意更新一下相应的man帮助文档。

有时候用户可能没有准确地记往某个命令的名字,但知道它是做什么用的,这时可以通过aproposwhatis命令来从whatis数据库中查找:

$ apropos <搜索字符串>

$ whatis <搜索字符串>

whatis数据库包含了系统中不同的命令和功能,有简短的描述使用户可以识别它们。这些描述在man帮助文档中说明得更加详细。用户不仅可以对命令名进行搜索,还可以对针对描述进行模糊搜索。也就是说,如果用户知道某个命令是做什么的,但不知道其名字,仍然能用aproposwhatis命令查找到该命令。

在使用whatis之前,必须首先运行以下命令来初始化whatis数据库:

$ make whatis

在增加新的man帮助文档之后,也需要运行一次这个命令,才可以在whatis数据库中查找到该命令。

man文档的显示格式

man帮助文档的格式特殊,我们在线查看的时候,是通过 troff文本格式化程序显示出来的,是很容易阅读的格式,包括加亮区、缩排等。不过这种格式不易于存成文本格式来编辑或打印。为了达到这个目的,用户可以使用col命令来过滤掉man文档中的特殊字符,产生一个清晰的文本格式的man帮助文档:

$ man ls | col –b > ls.txt

使用上面的命令,就可以把ls的帮助文档转化成为易于打印和保存的文本格式。

man各章节的简介

man的每一章节都是有相关性的,一节的内容在其他章节里也可以得到。这些章节简介是根据Linux Documentation Project来划分的,分为基本章节(第1节和第8节)和扩展章节(第6节和第7节)。章节里的内容也有可能会改变。

man1(可执行程序或shell命令)

在这里可以找到大多数普通用户的可执行命令(shell命令)。例如lsgrepfind等。它还包含了普通用户所使用的shell命令的文档。

man2(程序员的系统调用)

本李包含了用户在编写Linux程序的过程中所需要的系统调用的文档。

man3(程序员的库调用)

本节包含了Linux共享库和静态库调用的文档。

man4(特殊文件)

本节包含了特殊文件(FIFOssockets等)的文档。从理论上讲,所有/dev下的文件都应该包括在这里,但在man4中常常不包含这部分的内容。

man5(文件格式和习惯用法)

这是一个重要的章节,用户能找到重要的系统文件(如hostsinetd.confsmb.conf)的描述,同时还包含有进程间通讯、图形文件的格式、终端定义文件的信息等等。但是本节中的很东内容用户在其他地方也可以找到(如xforms库的参考文件里)。

man6(游戏)

本节包含了系统测试程序方面的man帮助文档。

man7(其他)

本节包含了不同的标准和术语方面的信息,包括协议、字符集、文件系统的层次结构、文本格式的宏、boot参数和一些Unix的信号量。

man8(系统管理命令)

本节包含超级用户常用的命令,如mountliloroute等。

man9(核心程序)

本节包括核心内部程序的信息。在多数Linux系统中,对这部分的描述或者没有,或者是分开写的。

mann(Tcl/tk)

传统的Unix系统中,本节是专为新命令而保留的(至少到目前为止是这样),但现在越来越倾向于在Linux下使用Tcl/tk程序工具。提供了Tcl/tk之后,用户的编程环境就会好得多。如果系统中还没有安装Tcl/tk开发环境,就不会有本节的内容。

7.3.5   info

infoman的下一个版本。不过目前只有少数的命令有与man不同的info信息页。如果用户使用info命令没有找到相应命令的信息,系统就会调用相应的man命令,所以这时会显示这些命令的man帮助内容。对于某些命令来说,info信息会比man信息更新更有用一些。

7.3.6   应用程序文档(README

在我们下载了某个软件包,想知道如何安装、配置和使用此软件的时候,通常都可以使用软件包中自带的一些说明文档。一般这些文档都命名为READMEReadme-firsthow-to-install等等显著的字样。有些软件包中还会把所有的帮助文件放在单独的子目录中,如readmehelp,方便用户使用。

7.3.7   how-tomini-how-to)和guide

How-toguide都是LDPLinux文档计划)中的一部分,对全世界的Linux使用者的帮助非常大。我们可以在www.找到最新的how-toguide内容。

How-to是关于linux中某个特定工作的,一步一步操作的详细描述。如Linux Installation How-to就是帮助我们在计算机中安装Linux系统的。类似的还有,如:

Apache-Compile-HOWTO       解释如何在Linux上编辑安装apache服务器

Bootdisk-HOWTO                   如何为自己的计算机制做启动盘

Samba-HOWTO               如何安装和配置samba服务器

mini-HOWTO

How-to文档一般比较详细,从各方面论述相关主题。对于一些比较简单的主题,为了方便用户使用,有的How-to使用了比较简洁的方式和语言把相关主题的最主要内容写出来,这就是mini-HOWTO。如:

Xterminals-mini-HOWTO         如何使用nfs, xfs, xdmxdmcp连接LinuxX客户端。

LILO-mini-HOWTO                 lilo的安装与使用。

7.3.8   Guide

相对于How-to来讲,Guide对某个主题的讨论一般篇幅更长,涵盖的内容更广,可以成为一本书了。如Network Administration or User Guide,是指导一个用户如何去掌握网络管理的方方面面的内容,而不只是象apacheNFS这样单个的服务。如:

Linux From Scratch Guide  如何只从源代码定制出完全适合你自己需要的Linux系统。

Advanced Bash-Scripting Guide       Shell的高级使用。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多