1、第2章Red Hat Linux 9的一般管理 本章是Linux服务器配置的基础部分,将分别介绍Linux的基本命令、文件管理、安全管理、Linux的引导与配置、系统性能与进程管理和软件包管理等内容。2.1 Linux的的基本命令基本命令2.3 安全管理安全管理Red Hat Linux 9的一般管理的一般管理2.4 Red Hat Linux 9的引导与的引导与配置配置2.5 系统性系统性能能2.6 系统进系统进程程2.2 文件系文件系统管理统管理本章小结本章小结2.7 软件包软件包管理管理2.1 Linux的基本命令2.1.1命令行基本用法 用户登录系统后使用命令时,实际是进入了shell
2、,shell遵循一定的语法将输入的命令加以解释,然后传给系统。在命令行中输入的第一项必须是一个命令的名称,第二项是命令的选项或参数,命令行中的每个字符串必须由空格或制表符隔开,如下所示:#Command 选项 Arguments 选项包括一个或多个字母代码,它前面有一个“-”,一般情况下此符号是不可缺少的,需要用它来区别参数和选项,选项可用于改变命令执行的动作的类型。例如,对于最常用的ls命令,没有任何选项时,其作用是列出当前目录中所有文件的名称,而不列出这些文件的其他信息。使用加了“-l”选项的ls命令,则列出当前目录下的文件或文件夹的详细信息,包括文件大小、权限、修改日期等。参数是在命令行
3、中的选项之后输入的一个或多个单词,大多数的命令都可以接受参数。有些命令可能会限制参数的数目,例如,mv命令至少需要两个参数:#mv 源文件或目录 目标文件或目录2.1.2 关机、重启命令 在Linux系统中可以使用shutdown、halt、reboot等命令进行关机、重启等操作,灵活使用这些命令,会给操作带来很大的方便。1.shutdown命令 在关闭运行Linux系统的计算机时,如果直接关掉电源,可能会破坏文件系统,因此,要使用关机命令进行关机。最常用的关机命令是shutdown,其语法格式如下:shutdown-t sec-arkhncfF time warning message sh
4、utdown命令各选项及参数的含义如下:-t sec:指定从发出信号到关闭系统之间的时间,默认单位是秒。-a:通知shutdown命令寻找/etc/shutdown.allow文件,并通过其提供的列表来验证身份。-r:重启计算机。-k:表示发送警告信号给所有已登录的用户。-h:关机后关闭电源(halt)。-n:不调用init,而是由shutdown程序自己来关机。-c:取消目前正在执行的关机程序。-f:在重启计算机(reboot)时不执行fsck文件系统检查程序。-F:在重启计算机(reboot)时强制执行fsck文件系统检查程序,检查文件系统是否正常。time:设定关机时间。time参数有两
5、种形式:一种是hh:mm,表示几点几分的时候执行,如“shutdown 12:10”表示12点10分执行shutdown命令;一种是+m,表示在m分钟后执行,如“shutdown+5”表示5分钟后执行shutdown命令。还可以使用“shutdown now”立即执行关机命令。warning message:发送给登录至系统的每位用户的提示信息。例如:shutdown+5 system will shutdown after 5 minutes!表示系统将在5分钟后关闭,同时将“system will shutdown after 5 minutes!”这个信息发送给所有登录用户。2.halt
6、命令 halt命令的功能相当于“shutdown h”。执行halt命令时,先结束应用程序,再执行sync系统调用,文件系统写操作完成后就会停止内核。其语法格式如下:halt-n-w-d-f-i-p halt命令各选项的含义如下:-n:不执行sync系统调用。-w:并不会真的关机,只是把过程写到/var/log/wtmp记录里。-d:关机时不把过程写到/var/log/wtmp记录里(选项n的操作包含了d)。-f:强制关机,不调用shutdown。-i:在关机之前先关闭所有的网络接口。-p:关机时调用poweroff。例如,“halt p”表示关闭系统后关闭电源;“halt d”表示关闭系统,
7、但不留下记录。3.reboot命令 reboot命令的工作过程和halt命令类似,但它是一个重启命令。其语法格式如下:reboot-n-w-d-f-i reboot命令各选项的含义如下:-n:在重启之前不对系统缓存进行同步操作。-w:不实际执行reboot命令,只是将过程写入/var/log/wtmp记录。-d:重启时不将过程写入/var/log/wtmp记录。-f:不调用shutdown,而是强制重启。-i:在重启之前先停止所有的网络接口。2.1.3目录和文件操作命令 1.mkdir命令 mkdir命令用于创建一个目录(类似于DOS下的md命令),其语法格式如下:mkdir 选项 目录名 该
8、命令要求创建目录的用户对当前目录(所创建目录的父目录)具有写权限,并且目录名不能与当前目录中已有的目录或文件的名称相同。mkdir命令中的选项及其含义如下:-m:对新建目录设置存取权限(也可以用chmod命令设置存取权限)。-p:目录名部分可以是一个路径名称,若路径中的某些目录尚不存在,使用此选项后,系统将自动建立尚不存在的目录。2.rmdir命令 rmdir命令用于删除一个目录,其语法格式如下:rmdir 选项 目录名 该命令可以从一个目录中删除一个或多个子目录项。当省略目录名时,表示删除当前目录。需要特别注意的是,目录被删除之前必须是空的。删除某目录时必须具有对其父目录的写权限。rmdir
9、命令中的选项及其含义如下:-p:删除指定的目录,此时目录应该为空,然后尝试删除指定路径中的所有上级目录(只有在上级目录为空的情况下才可以删除)。3.cd命令 用于改变当前工作目录,其语法格式如下:cd 路径 该命令将当前目录切换至路径指定的目录,若没有指定路径,则回到用户的主目录。为了切换到指定目录,用户必须拥有指定目录的执行和读权限。在该命令中可以使用如下通配符:*:表示通配任意长度的字符,例如,“a*”表示以字母a开头的任意长度的字符串。?:表示通配一个字符,例如,“A?”表示以A开头,长度为2的所有字符串。4.pwd命令 该命令用来显示当前工作目录的绝对路径,方法是输入“pwd”后按En
10、ter键。5.ls命令 ls是英文单词list的简写,其功能是列出目录或文件的内容,它与DOS下的dir命令类似,是用户最常用的命令之一。其语法格式如下:ls 选项 目录或文件 对于目录,执行该命令将列出其中所有的子目录和文件。对于文件,执行ls命令将输出文件名以及所要求的其他信息。未指定目录名或文件名时,执行ls命令则显示当前目录的信息。在默认情况下,输出条目按字母顺序排序。ls命令的选项及其含义如下:-a:列出指定目录下的所有项目。-A:列出指定目录下除了“.”及“.”以外的所有子目录和文件。-c:按文件的修改时间排序。-C:分成多列显示各项。-d:如果参数是目录,只显示其名称,而不显示其
11、下的各个文件。此选项往往与“l”选项一起使用,以得到目录的详细信息。-D:用Emacs的模式产生文件和目录列表。-f:不排序。该选项将使“lts”选项失效,并使“aU”选项有效。-F:在可执行文件、目录、socket、符号链接、管道名称后面,分别加上“*”、“/”、“=”、“”、“|”符号。-i:显示文件和目录的索引节点编号。-l:使用长格式列出信息,即列出文件或目录的详细信息。-L:当指定的是一个符号链接文件时,显示符号链接所指示的对象的信息,而不是符号链接本身的信息。-m:所有项目以逗号分隔,并填满整行行宽。-n:输出格式类似“l”,但使用“UID”及“GID”表示文件属主和属组。-N:直
12、接列出文件和目录名称,包括控制字符。-o:输出格式类似“l”,但不显示拥有者的信息。-p:在目录后面加上指示符号“/”。-q:将文件名称中的不可显示字符用“?”代替。-Q:将文件和目录名称用双引号引起来。-r:按字母顺序反向排序。-R:递归处理,同时列出所有子目录。-s:以块为单位列出所有文件的大小。-S:根据文件和目录大小排序。-t:按文件和目录的更改时间排序(最近优先)。-T:设置制表符对应的空白字符数。-u:按文件和目录的最后存取时间排序(最近优先)。-U:不进行排序,按文件系统原有的次序显示。-v:根据版本进行排序。-w:自行指定屏幕宽度,而不使用目前的数值。-x:逐行列出文件和目录。
13、-X:根据扩展名排序。-1:每行只列出一个文件。-help:显示此命令的帮助信息。-version:显示版本信息。6.cp命令 该命令的功能同DOS中的copy命令类似,用于将指定的一个或多个源文件或目录复制到目标目录中。其语法格式如下:cp 选项源文件(目录)目标目录 此命令的选项及其含义如下:-a:该选项通常在复制目录时使用,它保留链接、文件属性等,并递归地复制目录,其作用等同于“dpr”选项的组合。-d:复制时保留链接。-f:删除已经存在的目标文件而不提示。-i:在覆盖目标文件之前要求用户确认,回答“y”时,目标文件将被覆盖。-p:除复制源文件的内容外,还将其修改时间和访问权限同时复制到
14、新文件中。-r:若给出的是源目录,则递归复制该目录下的所有子目录和文件,即把源目录下的所有文件都复制到目标目录。-l:不进行复制,只是链接文件。7.mv命令 使用mv命令可以重命名文件或目录,或将文件由一个目录移入另一个目录。该命令相当于DOS中的ren命令和move命令的组合,其语法格式如下:mv 选项 源文件或目录 目标文件或目录 当“目录文件或目录”类型为文件类型时,mv命令完成文件重命名操作,就是将源文件(或目录)的名称改成目标文件名,此时源文件(或目录)只能有一个;当为目录类型时,mv命令将参数指定的源文件(或目录)移到指定的目标目录,此时源文件(或目录)可以有多个。在跨越文件系统移
15、动文件时,mv先进行复制,再将原有文件删除,而链接至该文件的链接也将丢失。mv命令的选项及其含义如下:-i:交互式操作。同cp命令中的“i”选项类似,如果执行mv操作时,目标文件已经存在,系统会询问是否覆盖,回答“y”,则覆盖已经存在的文件,回答“n”,则不覆盖,这样可以避免错误地覆盖目标文件。-f:禁止交互操作。执行mv操作时,即使目标文件已存在,也不进行任何提示,而是直接执行mv命令。使用此选项时,“i”选项将失效。8.rm命令 rm命令用来删除不需要的文件。它可以将某个目录及其下的所有文件及子目录一起删除。对于链接文件,只是断开链接,源文件保持不变。其语法格式如下:rm 选项 文件名 r
16、m命令的选项及其含义如下:-f:删除文件时不进行任何交互操作,直接执行删除命令。-r:将参数中列出的全部目录及其子目录均递归地删除,即删除指定目录中的所有子目录和文件。如果不使用此选项,则不删除目录,只删除文件。-i:进行交互操作。询问用户是否删除,回答“y”,则删除相应的文件或目录,回答“n”,则不删除。9.find命令 find命令用于查找文件,其语法格式如下:find 路径 匹配表达式 其中,匹配表达式有以下几种类型:name filename:查找指定名称的文件。user username:查找指定用户名的文件。-group groupname:查找指定用户组的文件。-print:将查
17、找的结果输出到标准输出。-size+/-nc:查找大小为n块的文件,一块等于512 B。c表示文件大小以字符计算,而不是以块计算。例如,+n表示查找大小大于n块的文件,nc表示查找大小等于n个字符的文件,-nc表示查找大小小于n个字符的文件。-inum n:查找索引节点号(inode)为n的文件。-atime+n或-n:按被访问时间查找文件。+n表示n天以前被访问的文件,-n表示n天以内被访问的文件。-mtime+n或-n:类似于atime,但是检查的是文件的内容被修改的时间。-ctime+n或-n:类似于atime,但是检查的是文件索引节点被改变的时间。-perm mode:查找与给定权限(
18、必须以八进制的数字形式给出访问权限)匹配的文件。-newer file:查找比指定文件新的文件,即最后修改时间离现在较近的文件。-exec command:对匹配的文件执行command命令,其格式为“-exec command 文件名;”。-ok command:执行command命令的时候要求用户确认,其他与“-exec”选项相同。例如,查找当前目录下所有以“.tmp”结尾的文件并删除,可以执行如下命令:find.-name*.tmp-exec rm;10.cat命令 cat命令用来查看文件内容、从键盘读取数据、合并文件等。其语法格式如下:cat 选项 文件名 cat命令各选项的含义如下:
19、-A:相当于“-vET”。-b:空白行不编号。-E:在文件的每一行行尾加上“$”字符。-T:将文件中的制表符用字符“I”显示。-n:在文件的每行前面显示行号。-s:将连续的多个空行用一行空白符来显示。-v:显示制表符和换行符之外的所有字符。2.1.4 vi编辑器 vi编辑器是visual interface的简称,是Linux和UNIX中最基本的文本编辑器,在其中可以执行删除、查找、替换、块操作等文本操作。vim是vi的加强版,比vi更容易使用,vi的命令几乎都可以在vim上使用,习惯上也将vim称为vi。1.进入和退出vi编辑器 在命令提示字符下输入“vi”,可以打开所要编辑的文件,如果指定
20、的文件不存在,则新建并打开该文件,此时就进入了vi编辑器。例如,下面语句可以打开/home目录下的tmp.txt文件:vi/home/tmp.txt 如果要保存或退出vi编辑器,可以使用下表中的命令。2.操作模式 vi编辑器有两种操作模式,分别是指令模式和输入模式。在指令模式下,vi将用户的按键输入作为指令来处理。在输入模式下,vi把按键输入当作插入字符来处理。从输入模式切换到指令模式,需要在输入模式下按Esc键;而从指令模式切换到输入模式,需要用户根据需要输入相应的指令,这些指令如下:1)新增 (1)a:从当前光标所在位置后面开始新增字符,光标后的字符随新增字符向后移动。(2)A:从当前光标
21、所在行的最后面开始输入。2)插入(1)i:从当前光标所在位置插入新字符,光标后的内容随新增字符向后移动。(2)I:从当前光标所在行的第一个非空白字符前面开始插入字符。3)开始新行(1)o:在当前光标所在行下新增一行,并将光标移动到下一行的开头。(2)O:在光标所在行上方新增一行。3.基本编辑 常用的编辑指令有如下几个:x:删除光标后面的一个字符。X:删除光标前面的一个字符。d:按d键,放开后,再按键盘上的“”键,将删除光标位置前的一个字符;按“”键,将光标位置后的一个字符删除;按“”键,可以将光标所在的行及其前一行一起删除;按“”键,将光标所在行及其后一行删除。dd:删除光标所在的行。r:修改
22、光标所在的字符。R:新增文字会覆盖原文字,直至按Esc键为止。s:删除光标所在的字符,并进入输入模式。S:删除光标所在的列,并进入输入模式。u:恢复被删除的文字。U:恢复光标所在处的所有改变。光标移动指令0:将光标移动到所在行的最前面$:将光标移动到所在行的最后面Ctrl+D:向下移动半页Ctrl+F:向下移动一页,也可以使用PageDown:键完成此功能Ctrl+U:向上移动半页Ctrl+B:向上移动一页,也可以使用PageUp:键完成此功能H:将光标移动到当前窗口的第一行M:将光标移动到当前窗口的中间行L:将光标移动到当前窗口的最后一行B:将光标移动到前一个单词的第一个字符W:将光标移动到
23、下一个字符的第一个字符E将光标移动到下一个单词的最后一个字符:将光标移动到所在行的第一个非空字符nG:将光标移动到第n行开头fx:向右移动到x字符上,例如,按f键和e键,则移动到当前光标所在行的e字符上,并进入插入模式Fx:向左移动到x字符上,并进入插入模式tx:向右移到x字符前一个字符上,并进入插入模式Tx:向左移动到x字符前一个字符上,并进入插入模式/:向前查找?:向后查找 vi编辑器中还有许多的行编辑指令。行编辑指令由指令名称与范围构成。其中,指令名称主要有d(删除)、y(复制)、p(粘贴)和c(修改)。范围可以是下列几个:e:光标所在位置到下个单词的前一个字符。w:光标所在位置到下个单
24、词的第一个字符。b:光标所在位置到上个单词的第一个字符。$:光标所在位置到该行的最后一个字符。0:光标所在位置到该行的第一个字符。):光标所在位置到下个句子的第一个字符。(:光标所在位置到该句的第一个字符。:光标所在位置到该段落的最后一个字符。:光标所在位置到该段落的第一个字符。4.环境变量的设置 vi编辑器的环境变量是使用“:set”来设置的。vi编辑器的环境变量很多,可以用“:set all”显示所有的环境变量,使用“:set 变量名及参数”设置对应的环境变量。常用的环境变量如下:(1)number:显示行号。(2)readonly:将文件设置为只读。(3)autowrite:使文件在执行
25、“:n”和“:!”命令之前都自动保存。(4)showmode:显示用户处在什么模式下。(5)noshowmode:不显示用户处在什么模式下。2.1.5 shell基础应用 shell是Linux操作系统的外壳,它为用户提供了使用操作系统的接口,是命令语言、命令解释程序以及程序设计语言的统称。1.shell的历史 第一个重要的标准UNIX shell是于1977年在V7(AT&T的第7版)UNIX上推出,并以作者Stephen Bourne的名字命名为Bourne shell,也称为sh。C shell是于20世纪70年代末开发,作为BSD UNIX系统的一部分发布的,它的主要开发者是Bill
26、Joy。Bourne shell和C shell的共存使UNIX用户有了选择,也导致了人们对哪个shell更好的争论。20世纪80年代中期,AT&T的David Korn推出了Korn shell。bash是Linux操作系统上默认的shell,它是Bourne again shell的简称。TC shell是C shell的扩展版本,且具有完全兼容性。2.什么是shell shell是Linux系统中的一个重要组成部分,是用户和系统交互的界面。它不仅是命令解释程序,还是一种高级编程语言,利用shell语言可以写出代码简单但功能强大的程序,尤其是在Linux环境中使用shell语言,与Linu
27、x系统的命令相结合,能极大地提高编程的效率。shell是用户与Linux内核之间的接口程序,如果把Linux操作系统的内核看成是一个球体的中心,那么shell就是围绕内核的外层,当从shell向Linux传递命令时,内核会进行响应。shell拥有自己内建的shell命令集,可以使用shell命令集编写shell程序,写好的shell程序通常称为shell脚本。用户在命令提示符下输入的命令都是先由shell解释,然后再传给Linux内核的。3.如何使用shell Linux系统的命令分为包含在shell内部的命令(如cd命令)和存在于文件系统中的某个目录下的单独程序(如cp命令)。对于用户而言,
28、不必知道一个命令是shell内部的命令,还是一个单独的程序,该工作由shell自动完成。当用户执行一个命令时,shell首先检查该命令是否是内部命令,若不是,再检查是否是一个单独的程序,若两者都不是,则返回一条出错信息。如果能够找到该命令,系统就会调用此命令,并将其传给Linux内核。用户在命令提示符下输入命令时,可以与键盘上的某些按键配合使用。常用的几个按键及其功能如下:显示上一个命令。:显示下一个命令。:光标左移。:光标右移。BackSpace键:向左删除一个字符。常用的shell操作有如下几类:1)定位文件和目录2)管道和分页器3)Tab自动补全4)使用多个命令2.2 文件管理2.2.1
29、磁盘分区 1.磁盘分区工具简介 在安装Red Hat Linux 9操作系统的过程中,可以选择使用可视化的Disk Druid工具进行分区。系统安装完成后,用户还可以使用磁盘分区管理工具fdisk和parted等对磁盘分区进行管理。这两个工具都可以对分区进行创建、删除、查看信息等基本操作,除此之外,parted工具还可以调整已有分区的大小。本节讨论如何使用fdisk工具执行分区管理任务,关于parted工具的使用可以参考其使用手册。2.使用fdisk进行分区管理 首先启动fdisk,然后在命令提示符下以管理员身份执行以下操作:fdisk/dev/sda 这里的/dev/sda是用户要配置的设备
30、名称。启动fdisk工具后,可以输入命令m来查看fdisk的使用方法。2.2.2 文件系统 1.文件系统简介 文件系统是操作系统在硬盘或者分区上保存文件信息的方法和数据结构,即文件在硬盘或者分区上的组织结构方式。Linux文件系统的关键组成部分有超级块(super block)、索引节点(inode)、数据块(data block)和目录块(directory block)等。超级块中包含了该分区上的文件系统的整体信息,如文件系统的大小等。超级块后面的数据结构是索引节点,它包含了某一个具体文件的几乎全部的信息,如文件的存取权限、拥有者、大小、建立时间以及对应的目录块和数据块等,索引节点中不包括
31、文件的名称,文件名是放在目录块中的。目录块中包含文件的名称和该文件的索引节点号。数据块是真正存储文件内容的地方。2.建立文件系统 新建立的分区没有文件系统,因此,要想在分区上存储数据,首先需要建立文件系统。建立文件系统的过程类似Windows系统中的格式化,常用的命令是mkfs,其语法格式如下:mkfs-v-t fs-type-c-l filenamedevice size mkfs命令各选项及参数的含义如下:-v:强制进行长格式输出。-t fs-type:选择文件系统类型。-c:查找坏块,并初始化坏块表。-l filename:从filename文件中读初始的坏块表。device:将要创建的
32、文件系统所在的设备号。size:文件系统的大小。3.使用命令挂载文件系统 建立文件系统之后,还需要将文件系统安装到Linux目录树的某个位置上才能使用,这个过程称为挂载,文件系统所挂载到的目录称为挂载点。除磁盘分区外,其他存储设备(如软盘、光盘、U盘)在使用前也需要进行挂载。可以在系统引导过程中自动挂载文件系统,也可以使用命令手工挂载。通常将文件系统挂载到某个可以存取的空目录下(该目录是专门为挂载某个文件系统而建立的)。Linux系统提供了一个专门的挂载点目录/mnt,并在该目录下为软盘和光盘的使用专门建立了默认的子目录。如/mnt/cdrom目录通常用来挂载光盘。挂载文件系统的命令是moun
33、t,其语法格式如下:mount-t文件系统类型-o选项设备挂载点 其中,选项用于指明挂载的具体方式,常用的选项有如下几个:ro:以只读方式挂载。rw:以读/写方式挂载。remount:重新挂载已挂载的文件系统。4.使用配置文件挂载文件系统 在用户需要一直使用某个文件系统或者需要挂载多个文件系统时,除了可以手工一个一个地挂载外,还可以使用/etc/fstab配置文件来进行挂载,该文件列出了引导系统时需要挂载的文件系统的相关信息和挂载参数。系统在引导时会读取这个文件,并挂载该文件中列出的文件系统。/etc/fstab文件的内容分为六列,格式如下:/dev/device /dirmount type
34、 options dump fs-passno 每列的含义如下:/dev/device:将要被挂载的文件系统。/dirmount:文件系统要被挂载到的目录。type:文件系统类型。options:挂载选项,用于传递给mount命令,以决定如何挂载,各选项间用逗号隔开。dump:由dump程序决定文件系统是否需要备份。fs-passno:由fsck程序决定引导时是否检查磁盘以及检查的次序。5.维护文件系统 为了保证文件系统的完整性和可靠性,Linux系统默认在挂载文件系统之前检查其状态,很少需要用户来进行文件系统的维护工作。在Linux系统中,对文件系统的检查是通过fsck工具进行的,其语法格式
35、如下:fsck 选项 文件系统 使用此工具进行检查时,如果文件系统已经挂载,可能会引发严重的文件系统损害,最好先将文件系统卸载后再检查。此外,还可以使用du、df工具查看文件系统的相关信息。1)dudu命令用于统计目录的磁盘使用情况。其语法格式如下:du 选项 names 2)df df命令后面不加选项时,运行结果会显示所有已挂载的文件系统的磁盘空间使用情况,也可以在df后面接选项,实现相应的特定功能,其常用的选项如下:a:显示所有文件系统的磁盘使用情况。h:以最适合的容量单位显示磁盘使用情况。i:显示索引节点的使用情况,而不是文件块的使用情况。2.2.3 Linux目录与文件的权限管理 文件
36、权限是指文件(目录)的访问控制权限,即哪些用户和组群可以访问文件(目录),以及可以执行什么样的操作。文件(目录)权限与系统的数据安全息息相关。1.Linux的目录结构 在Microsoft的Windows操作系统中,主分区和逻辑分区都被称为驱动器,并且为每个驱动器分配一个字母(如C、D、E、F等)表示其名称,每个驱动器都有自己的根(/)目录结构。与Windows操作系统不同,Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到根目录上。根(/)目录位于Linux文件系统目录结构的顶层。在Linux系统中,根目录是最顶层的分区,如果还有其他分区,必须挂载到根目录下
37、的某个位置。Linux系统中的目录结构呈树形,因此也称为目录树。2.Linux的文件类型 文件是操作系统用来存储信息的基本结构,是存储在某种介质(软盘、硬盘、光盘、U盘等)上的一组信息的集合,并通过文件名来标识。文件名由字母、数字以及其他符号组成,在Linux系统中,文件名严格区分大小写,如“test.txt”、“Test.txt”、“test.TXT”、“Test.TXT”代表四个不同的文件。文件名长度可以达到255个字符。Linux系统中有三种基本的文件类型:(1)普通文件:包括文本文件、数据文件、可执行的二进制程序文件等。(2)目录文件:Linux系统把目录看成是一种特殊的文件,并利用它
38、构成文件系统的树形结构。每个目录文件中至少包含两个条目,“.”表示上一级目录,“.”表示该目录本身,这和DOS系统下的目录结构类似。(3)设备文件:设备文件是一种特殊的文件,系统利用它们来标识各个设备驱动器,内核使用它们与硬件设备通信。Linux的设备文件主要有两类:字符设备文件和块设备文件。字符设备文件的存取以字符为单位,如键盘、鼠标等设备;而块设备文件的存取以字符块为单位,如软盘、硬盘、光盘和U盘等设备。此外,链接文件是Linux系统中的一种特殊文件类型,它分为符号链接(symbolic link)和硬链接(hard link)两种。3.文件的属主和属组 属主就是文件或者目录的所有者,对文
39、件或目录有特别的操作权限。默认情况下,文件和目录的创建者即为其属主。文件所属的用户组称为文件的属组。用户可以使用chown命令修改文件的所有者,其语法格式如下:chown选项用户或组文件列表使用chown命令也可以更改属组,其格式如下:chown:组 文件用户也可以使用chown命令同时修改文件的属主和属组。其基本格式如下:chown:用户:组 文件可使用chgrp命令修改文件的属组,其语法格式如下:chgrp选项组文件列表4.文件权限1)权限简介Linux是一个多用户操作系统,对每个文件和目录规定严格的访问权限,可以有效地保护文件。Linux系统中的每个文件和目录的访问权限是加在其上的一个数
40、据结构,称为访问控制列表(ACL)。每个文件和目录都具有读取、写入和执行三个主要的权限。文件创建者拥有该文件的所有权限,并可以修改这些权限。同时,每个文件(目录)还有属主和属组两个属性,因此,可以通过指定文件(目录)允许被哪些用户(属主)或者组群(属组)访问来限制用户对该文件(目录)的访问权限。2)查看权限使用“ls l”命令可以查看文件的详细信息,显示在最前面的是文件的类型和权限,随后是链接的个数、文件所有者名称、属组、以字节计算的文件长度、上次修改该文件的日期和时间,最后是文件名3)修改权限文件权限可以使用chmod命令来改变,其语法格式如下:chmod操作对象 动作 权限 文件或目录名“
41、操作对象”参数可以使用下列字母中的一个或它们的组合:u:拥有文件的用户(文件所有者)。g:文件所有者所在的组群。o:其他用户(不是所有者且不属于所有者的组群的用户)。a:每个人或者全部用户(包括u、g和o),这是系统默认值。动作有如下几个:+:添加权限。-:删除权限。=:使它成为唯一权限。“权限”参数可以使用下列字母中的一个或它们的组合,当是多个字母的组合时,各字母间应用逗号隔开:r:读取权。w:写入权。x:执行权。2.2.4 磁盘配额管理 为了防止某个用户或者用户组占用过多的磁盘空间,需要对用户和用户组的可用存储空间进行限制。在Linux系统中,可以通过设置磁盘配额(disk quota)来
42、限制用户和用户组对磁盘空间的使用。1.磁盘配额的功能 磁盘配额就是管理员对本域中的每个用户(用户组)所能使用的磁盘空间进行配额限制,即每个用户(用户组)只能使用最大配额范围内的磁盘空间。它监视每个个人用户卷的使用情况,因此,每个用户对磁盘空间的使用不会影响同一卷上其他用户的磁盘配额。磁盘配额可以对每个用户(用户组)的磁盘使用情况进行跟踪和控制:通过扫描磁盘分区,检测每个用户(用户组)对磁盘空间的使用情况,并用不同的颜色标识出使用的磁盘空间超过报警值和配额限制的用户。通过使用磁盘配额,可以使登录到相同计算机的多个用户互不干涉,并能保证用户不独占公用服务器上的磁盘空间。磁盘配额提供了一种基于用户和
43、分区的文件存储管理,使管理员可以方便地利用这个工具合理地分配存储资源,避免由于磁盘空间使用失控而造成的系统崩溃,从而提高系统的安全性。2.启用Linux的磁盘配额功能 在Linux系统中,磁盘配额可以从以下两方面限制磁盘的使用:限制用户能够使用的索引节点数,从而限制用户可以创建的文件数量。限制用户能够使用的磁盘区块数,从而限制用户可以占用的磁盘容量。要实现磁盘配额功能需要以下几步:(1)检查是否安装了quota软件包,大部分情况下系统会默认安装该软件包。可以通过以下命令查看quota软件包的安装情况:#rpm-qa|grep quotaquota-3.06-9(2)修改/etc/fstab文件
44、,启用文件系统的配额功能。以root用户身份登录系统,使用vi编辑器编辑/etc/fstab文件,给需要设置配额的文件系统添加usrquota和grpquota选项,用来启用用户配额和组配额(3)重启系统,使修改的磁盘配额生效。(4)运行quotacheck命令生成磁盘配额文件。运行的命令及结果如下:#quotacheck-cvug/homequotacheck:Scanning/dev/sda3/home donequotacheck:Checked 7 directories and 11 filesquotacheck:Old file not found.quotacheck:Old
45、file not found.其中,“-c”选项用来生成配额文件(aquota.user和aquota.group),“-v”选项用来显示操作过程,“-u”选项检查用户配额,“-g”选项检查用户组配额。系统在进行配额检查的时候会在配额文件中创建磁盘使用信息。(5)运行如下命令:quotaon/home 或者:quotaon/dev/sda3 打开文件系统的磁盘配额管理功能。3.编辑用户和用户组配额限制 用户和用户组的磁盘配额限制分为两种:(1)软限制:用户和用户组在文件系统上可以使用的磁盘空间和文件数量,在某个过渡期内可以暂时超过这个限制。(2)硬限制:用户和组可以使用的最大磁盘空间或最多的文
46、件数量,绝对不允许超过这个限制。可以使用edquota命令设置配额,格式如下:edquota 用户名 4.管理磁盘配额 磁盘配额生效后,可以查看磁盘使用是否超过限制,并根据不同情况进行相应的处理。例如,某用户的磁盘使用屡次超出其配额或持续达到其软限制,系统管理员可以根据实际情况通知用户进行相应的处理。1)查看磁盘配额的报告 可以通过如下命令查看某个用户的磁盘配额报告:quota user 如果要查看某个组群的磁盘配额报告,可以使用如下命令:quota-g group 其中,user和group为用户和组的名称或者UID和GID。另外,系统管理员还可以使用repquota命令生成完整的磁盘配额报
47、告.2)磁盘配额的启用和关闭 当不需要使用磁盘配额时,可以将其关闭,例如,关闭/home文件系统的用户和组的磁盘配额的命令如下:quotaoff-vaug/home 其中,“-v”表示在关闭磁盘配额过程中显示详细的状态信息,“-a”表示关闭所有本地挂载的文件系统的磁盘配额,“-u”表示关闭用户磁盘配额,“-g”表示关闭组磁盘配额。需要重新启用磁盘配额时,可以使用具有同样选项的quotaon命令,例如,要为/home文件系统启用用户和组磁盘配额,命令如下:quotaon-vaug/home2.3 安全管理2.3.1安全管理的内容 安全管理包含的内容主要有权限管理,数据保护,保证系统完整并能正常运
48、行,以及日志记录审核等。1.权限管理 权限管理是安全管理中的一个最基本的方法,它体现在账户口令的正确设置和账户权限的正确配置。权限管理的首要目标就是防止系统以外的非授权用户越权使用系统,其次是要防止系统内没有被授予相应权限的用户对系统进行越权操作。2.数据保护 几乎所有的安全管理都涉及数据保护问题,数据包括存储设备上的以静态文件形式存在的数据和网络传输过程中的数据。对于网络传输过程中的数据的保护,在后面的网络安全中会详细讲述。对于以静态文件形式存在的数据的保护,主要是防止数据遭到未授权用户的破坏和篡改,并防止数据内容泄漏。3.保证系统完整并能正常运行 保证系统完整的主要手段是对系统进行周期性的
49、备份和系统崩溃后的及时恢复。而维护系统的正常运行主要是对用户的程序进程进行管理,解除来自用户的安全威胁,并防止某些进程可能导致的系统崩溃。4.日志记录审核 安全管理中必不可少的操作是日志管理。日志是事件或操作发生以后的相关记录,是安全管理中在操作顺序上比较靠后的手段,管理员可以通过查看日志记录来分析用户曾经进行了什么操作,还可以在这些操作中分析出哪些对系统不利,哪些对系统是致命的,并能发现导致安全问题的原因,给以后的安全管理提供参考,避免相同的危险。2.3.2 用户及组的管理 1.认识用户和组 在Linux系统中,每个用户对应一个账号。账号是用户的身份标识,通过账号用户可以登录到某个计算机,并
50、访问已被授权的资源。超级用户root是Red Hat Linux系统在安装完成后自动创建的一个特殊的用户,它可以执行所有的管理任务,可以不受限制地进行任何操作。普通用户若要在Linux系统中工作,必须由超级用户为其创建允许登录系统的普通用户账号。组是用户账号的集合,被用来简化对用户的管理。把对系统资源的访问权授予某个组,此组中的所有用户就都自动获取了这种权限。用户账号可以同时是多个组的成员,其中只有一个组为该用户的主组群。用户和组的一些基本概念如下:用户名:用来标识用户的名称,可以是由字母、数字和其他符号组成的字符串,区分大小写用户标识(UID):用来表示用户的数字标识。root用户的UID为