《Red Hat9.0学习参考:Linux系统管理》由会员分享,可在线阅读,更多相关《Red Hat9.0学习参考:Linux系统管理(39页珍藏版)》请在金锄头文库上搜索。
1、第3章 Linux系统管理本章学习目标本章学习目标在Linux系统中,虽然有很多应用都使用图形界面,但是大多数使用和管理Linux的实用程序和技巧还是通过键入命令来运行的。在本章中,将介绍一些基本的Linux命令,并通过一些实际的例子使读者边学边用,让读者尽快熟悉Linux系统。通过对本章的学习,读者应该掌握以下主要内容: 了解对系统管理的具体工作。理解对用户和工作组管理的基本概念及相关的管理方法。理解文件系统管理的基本概念及相关的管理方法。 3.1系统管理概述系统管理概述3.2用户和工作组管理用户和工作组管理1. 1. 用户账号文件用户账号文件passwdpasswdPasswd是一个文本文
2、件,用于定义系统的用户账号,该是一个文本文件,用于定义系统的用户账号,该文件位于文件位于“/etc”目录下。它包含了一个系统账户列表,目录下。它包含了一个系统账户列表,给出每个账户一些有用的信息,例如,用户给出每个账户一些有用的信息,例如,用户ID、组、组ID、主目录、主目录、shell等等。由于所有用户都对等等。由于所有用户都对passwd有读权限,有读权限,所以该文件中只定义用户账号,而不保存口令。所以该文件中只定义用户账号,而不保存口令。passwdpasswd文件中每行定义一个用户账号,一行中又划分为多文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用
3、个字段定义用户的账号的不同属性,各字段用“:”隔开。隔开。图图3-13-1中显示了中显示了passwdpasswd文件的前文件的前1010行内容。在图中显示出行内容。在图中显示出了文件显示各用户的每一个字段,各字段的说明如表了文件显示各用户的每一个字段,各字段的说明如表3-13-1所示。所示。 图3-1 passwd文件的属性及部分内容表31passwd文件各字段说明字段说明Account使用者在系统中的名字,它不能包含大写字母。Password用户口令,出于安全考虑,现在不使用该字段保存口令,而用字母“x”来填充该字段,真正的密码保存在shadow文件。UID用户ID号,惟一表示某用户的数字
4、。GID用户所属的私有组号,该数字对应group文件中的GID。GECOS这字段是可选的,通常用于保存用户命名的信息。Directory用户的主目录,用户成功登录后的默认目录。shell用户所使用的shell,如该字段为空则使用“/bin/sh”。2. 用户口令文件用户口令文件shadow在shadow文件中,每行定义了一个用户信息,行中各字段各字段用“:”隔开。为进一步提高安全性,shadow文件中保存的是已加密的口令。图3-2中显示了shadow文件的前10行内容。从图3-2中可以看出,“/etc/shadow”文件中的每个记录用“:”隔开为9个域,每个域的含义分别为:登录名加密口令口令上
5、次更改时距1970年1月1日的天数口令更改后不可以更改的天数口令更改后必须再更改的天数(有效期)口令失效前警告用户的天数口令失效后距账号被查封的天数账号被封时距1970年1月1日的天数保留未用3. 用户组账号文件用户组账号文件group用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。系统上的每一个文件都有一个用户和一个组的属主。使用“ls l”命令可以看到每一个文件的属主和组。于系统上的每个组,在/etc/passwd文件中有一行记录,记录的格式为: groupname : passwd : GID : userlist表32group文件字段说明字段说明Groupname
6、是组的名字Passwd是组的加密口令GID是系统区分不同组的ID,在/etc/passwd域中的GID域是用这个数来指定用户的缺省组。Userlist是用“,”分开的用户名,列出的是这个组的成员。图3-3中显示了shadow文件的前10行内容。4. 用户口令文件用户口令文件gshadowgshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。Gshadow文件中每行定义一个用户组信息,行中各字段间用“:”分隔,每行记录的格式为:groupname : Encrypted password: Group administrators: Group members各字
7、段的的含义如表3-3所示。在图3-4中给出了该文件的属性及文件的部分内容。表33group文件字段说明字段说明Groupname用户组名称,该字段与group文件中的组名称对应。Encryptedpassword用户组口令,该字段用于保存已加密的口令Groupadministrators组的管理员账号,管理员有权对该组添加删除账号。Groupmembers属于该组的用户成员列表,列表中多个用户间用“,”分隔。图3-4 group文件的属性及部分内容3.2.2 用户和组账户的维护命令用户和组账户的维护命令1. 增加用户帐号增加用户帐号在命令行下使用 useradd 命令: useradd 用户名
8、 该命令做了下面几件事:1)在 /etc/passwd 文件中增添了一行记录;2)在 /home 目录下创建新用户的主目录,并将 /etc/skel 目录中的文件拷贝到该目录中去;但是使用了该命令后,新建的用户暂时还无法登录,因为还没有为该用户设置口令,需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 etc/group 文件中的 GID 加 1。 增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组。这一方法是为了能让新用户与其他用户隔离,确保安全性的措施
9、下面通过增加一个用户“liuyidan”,以及查看其相关信息,来帮助用户理解该命令所执行的操作。其在终端上的操作命令及响应如图3-5所示。#useradd liuyidan /建立用户账号#tail -l /etc/passwd /查看password文件中添加的用户账号信息#tail -l /etc/shadow # ls /home/查看所建立账号的主目录图3-5 增加用户及相关操作选项功能描述-g用于添加用户账号时指定该用户的私有组。如不指定“-g”参数,useradd命令将自动建立与用户账号同名的组作为该账号的私有组。-D用于显示或设置useradd命令所使用的默认值在“g”选项时,其
10、语法格式如下:useraddg组名用户名在“D”选项中,如果是用来修改useradd命令所使用的默认值,那么该命令使用的语法格式如下:useraddDggroupbbasesshellfinactiveeexpire2. 修改用户账号修改用户账号usermodusermod命令可用来修改用户帐号的各种属性,包括用户主目录、私有组、登录、shell等内容。Usermod的命令格式如下:usermod -LU-c -d -e -f -g -G -l -s -u 用户帐号该命令的各个参数说明如下:-c :修改用户帐号的备注文字。 -d:修改用户登入时的目录。 -e : 修改帐号的有效期限。 -f :
11、修改在密码过期后多少天即关闭该帐号。 -g: 修改用户所属的群组。 -l :修改用户帐号的名称下面举例说明该命令的使用方法:(1)修改用户名,把用户名“liuyidan”改名为“lyd”,使用的命令是:# usermod l lyd liuyidan(2)锁定“lyd”用户,使其不能登录。命令如下:# usermod L lyd(3)解锁“lyd”用户账号,使其可以登录。命令如下:# usermod U lyd3. 删除用户删除用户userdeluserdel命令用于删除指定的用户账号。其使用的语法格式为:userdel -r用户账号需要补充说明的是userdel命令可删除用户账号与相关的文件
12、。若不加参数,则仅删除用户账号,而不删除相关文件。其其中中参参数数“-f-f”是是用用来来删删除除用用户户登登入入目目录录以以及及目目录录中中所所有有文文件。件。下面举例说明该命令的使用方法:下面举例说明该命令的使用方法:#grep lyd /etc/passwd#grep lyd /etc/passwd/查询用户账号查询用户账号lydlyd是否存在是否存在#userdel lyd#userdel lyd/删除删除lydlyd账号账号#grep lyd /etc/passwd#grep lyd /etc/passwd/再次查询用户账再次查询用户账号号lydlyd是否存在是否存在#ll #ll
13、d /homed /home/查查询询用用户户lydlyd的的主主目录是否还存在目录是否还存在#userdel #userdel r lydr lyd/删删除除用用户户的的同同时时删除其工作主目录删除其工作主目录4. 组增加命令组增加命令groupaddgroupadd命令可指定群组名称来建立新的群组账号。该组账号的ID值必须是惟一的,且数值不可为负。预设的最小值不得小于500,且每增加一个组账号ID值逐次增加。ID值0499是保留给系统账号使用。该指令使用的语法格式为:groupadd -r group其中“-r”参数是用来建立系统账号。系统账号的ID值不能大于500。下面举例说明该命令的使
14、用方法:# groupadd lbgroup/建立组账号lbgroup# grep lbgroup /etc/group/查询group文件中lbgroup组是否建立#groupadd r syslbgroup /建立系统组账号 # grep lbgroup /etc/group /查询group文件中syslbgroup组是否建立 5. 组账号修改组账号修改 groupmod命令用来更改群组识别码或名称。该命令的语法格式为:groupmod -g -n 群组名称命令中所使用的参数说明如下:-g 设置欲使用的群组识别码。-o 重复使用群组识别码。-n 设置欲使用的群组名称。下面举例说明该命令的
15、使用方法:# grep lbgroup /etc/group/查询group文件中lbgroup组属性#groupmod g 503 lbgroup/改变lbgroup组的GID为503# grep lbgroup /etc/group/查询操作结果是否正确#groupmod n ydgroup lbgroup/改变lbgroup组名为ydgroup# grep 503 /etc/group/查询操作结果是否正确6. 删除组账号删除组账号groupdel命令用于删除指定的组账号,若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。该命令的语法格式为:groupdel 群组名称 7.
16、 7.口令维护命令口令维护命令出出于于系系统统安安全全考考虑虑,LinuxLinux系系统统中中的的每每一一个个用用户户除除了了有有其其用用户户名名外外,还还有有其其对对应应的的用用户户口口令令。因因此此使使用用useradduseradd命命令令增增加加时时,还还需需使使用用passwdpasswd命命令令为为每每一一位位新新增增加加的的用用户户设设置置口口令令;用用户户以以后后还还可可以以随随时时用用passwdpasswd命命令令改改变变自自己己的的口口令令。该该命命令令的一般格式为:的一般格式为: passwd passwd 用户名用户名 其其中中用用户户名名为为需需要要修修改改口口令
17、令的的用用户户名名。只只有有超超级级用用户户可可以以使使用用“passwd passwd 用用户户名名”修修改改其其他他用用户户的的口口令令,普普通通用用户户只只能能用不带参数的用不带参数的passwdpasswd命令修改自己的口令。命令修改自己的口令。 另外,passwd命令还可以使用一些参数选项,这些参数选项可对账号的口令进行不同的操作,但这些带参数的passwd命令只有root用户可以使用。这些参数选择包括:-S:用于查询指定用户账号的状态。-l:用于锁定账号的口令。-u:解除锁定账号的口令。-d:删除指定账号的口令。8.组中用户成员的维护gpasswd命令可用于把一个账户添加到组、把一
18、个账户从组中删除、把一个账户设为组管理员。(1)添加用户到使用的命令格式为:gpasswd a 用户账号名组账号名(2)从组中删除用户的命令格式为:gpasswd d 用户账号名 组账号名(3)设置用户为组管理员的命令格式为:gpasswd -A 组管理员用户列表用户组 3.2.3 用户和组的状态命令用户和组的状态命令1.id命令命令idid命命令令用用于于显显示示用用户户当当前前的的UIDUID,gidgid以以及及所所属群组的组列表该指令的语法格式为:属群组的组列表该指令的语法格式为:id id 选项选项 用户名称用户名称 该命令所使用的选项参数说明如下:该命令所使用的选项参数说明如下:-
19、g-g:显示用户所属群组的:显示用户所属群组的IDID。1.-G-G:显示用户所属附加群组的:显示用户所属附加群组的IDID。2.-n-n:显示用户,所属群组或附加群组的名称。:显示用户,所属群组或附加群组的名称。3.-r-r:显示实际:显示实际IDID。4.-u-u:显示用户:显示用户IDID。2. whoami命令命令whoami命令用于显示登录者自身的用户名称,本指令相当于执行“id un”指令。3. su3. su命令命令su命令是用来将当前用户转换为其他用户身份。其命令的语法格式为:su -flmp -c -s 用户帐号需要指出的是su命令可让用户暂时变更登入的身份。变更时须输入所要
20、变更的用户账号与密码。该命令中的选项参数说明如下: -c:执行完指定的指令后,即恢复原来的身份。-f:适用于csh与tsch,使shell不用去读取启动文件。-:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。-m,-p:变更身份时,不要变更环境变量。-s:指定要执行的shell。用户帐号:指定要变更的用户。若不指定此参数,则预设变更为root。4. groups4. groups命令命令groups命令用于显示指定用户所属的组,如未指定用户则显示当前用户所属的组。该命令的语法格式为:groups 用户名3.3进程管理进程管理3.
21、3.1 进程的定义进程的定义LinuxLinux是是一一个个多多用用户户多多任任务务的的操操作作系系统统。多多用用户户是是指指多多个个用用户户可可以以在在同同一一时时间间使使用用计计算算机机系系统统;多多任任务务是是指指LinuxLinux可可以以同同时时执执行行几几个个任任务务,它它可可以以在在还还未未执执行行完完一一个个任任务时又执行另一项任务。务时又执行另一项任务。 那那到到底底什什么么叫叫进进程程?LinuxLinux系系统统上上所所有有运运行行的的程程序序都都可可以以称称之之为为一一个个进进程程。LinuxLinux用用分分时时管管理理方方法法使使所所有有的的任任务务共共同同分分享享
22、系系统统资资源源。进进程程的的一一个个比比较较正正式式的的定定义义是是 在在自自身身的的虚虚拟拟地地址址空空间间运运行行的的一一个个单单独独的的程程序序。进进程程与与程程序序是是有有区区别别的的,进进程程不不是是程程序序,虽虽然然它它由由程程序序产产生生。程程序序只只是是一一个个静静态态的的指指令令集集合合,不不占占系系统统的的运运行行资资源源;而而进进程程是是一一个个随随时时都都可可能能发发生生变变化化的的、动动态态的的、使使用用系系统统运运行行资资源源的的程程序。而且一个程序可以启动多个进程。序。而且一个程序可以启动多个进程。 3.3.2 报告进程状态报告进程状态要对进程进行监测和控制,首
23、先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、哪些进程占用了过多的资源等等。ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令。其命令语法格式如下: ps 选项 命令中的选项说明如下: -e:显示所有进程。-f:全格式。-h:不显示标题。-l:给出长列表。-a:显示终端上的所有进程,包括其他用户的进程。-r:只显示正在运行的进程。-x显示没有控制终端的进程。-txx:只显示受
24、tty.xx控制的进程。-u:打印用户格式,显示用户名和起始时间。-j:按作业格式输出。-v:按虚拟存储器格式显示输出。-m:显示存储器信息。-S:增加子CPU时间和页面出错。-w:用宽格式显示,不截取命令行,使它成为一行。-r:只显示正在运行的进程。表214ps命令输出字段的含义字段含义USER进程所有者的用户名PID进程号%CPU进程自最近一次刷新以来所占用的CPU时间和总时间的百分比%MEM进程使用内存的百分比VSZ进程使用的虚拟内存大小,以K为单位RSS驻留空间的大小。显示当前常驻内存的程序的K字节数。TTY进程相关的终端STAT进程状态,用下面的代码中的一个给出:R:可执行的。S:睡
25、眠状态。D:不间断睡眠。T:停止或跟踪。Z:僵尸。W:进程没有驻留页。I:空闲。TIME进程使用的总CPU时间COMMAND被执行的命令行NI进程的优先级值,较小的数字意味着占用较少的CPU时间PRI进程优先级。PPID父进程IDWCHAN进程等待的内核事件名3.3.3 结束进程结束进程当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程这个组合键是不能达到目的的。这时就必须使用kill命令,该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。kill命令的语法格式很简单,大致有以下两种方 式:kill -s 信号 | -
26、p -a 进程号 kill -l 信号 命令中的参数说明如下:-s:指定需要送出的信号。既可以是信号名也可以对应数字。-p:指定kill命令只是显示进程的pid,并不真正送出结束信号。-l:显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。 3.3.4 进程睡眠进程睡眠sleep命令可使当前正在执行的进程在规定的时间内处于睡眠。其使用的语法格式为:sleep time说明:time为进程将睡眠的时间,以秒为单位。例如:$ sleep time3.4查看登录用户及日志文件信息查看登录用户及日志文件信息3.4.1 识别识别Linux中的用户中的用户1.
27、查看用户的操作查看用户的操作系统管理员在任一时刻都可查看用户的行为,在终端的提示符下输入w命令即可 命令响应中所示的信息分别说明如下:第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登录用户总数及系统平均负载信息。对于该行显示的几个数据意义是:4:50pm 表示执行w的时间是在下午4:50。0days,11:18 表示系统运行0天11小时18分。4users 表示当前系统登录用户总数为4load average 与后面的数字一起表示系统在过去1、5、 10分钟内的负载程度,数值越小,系统负 载越轻。从第2行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所
28、占用的系统资源: USER:显示登录用户名。用户重复登录,该账号也会重复出现。TTY:用户登录所使用的终端。FORM: 显示用户从什么地方登录到系统。如果是从本地登录,此字段为“-”;如果从远程登录便会显示主机的IP地址或主机名。LOGIN:是LOGINAT的意思,表示登录进入系统的时间。IDLE:用户空闲时间,从用户上一次任务结束后开始计时。JCPU:以终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。PCPU:指WHAT域的任务执行后所耗费的CPU时间。WHAT:表示当前执行的任务。另外,使用W命令还可在有很多用户登录时,查看某一个具体的用户名,使用的命令形式
29、如下:# w root2.查看登录用户查看登录用户 系系统统管管理理员员若若想想知知道道某某一一时时刻刻有有哪哪些些用用户户登登录录到到系系统统,可可以以使使用用系系统统提提供供的的who命命令令,该该命命令令可可以以查查看看当当前前登登录系统的用户及其他相关系统信息。录系统的用户及其他相关系统信息。 3. 查看登录用户历史查看登录用户历史系统管理员可以随时查看用户登录的历史行为,还系统管理员可以随时查看用户登录的历史行为,还可查看某一用户曾经登录到的系统,这些功能使用可查看某一用户曾经登录到的系统,这些功能使用last命命令即可实现。令即可实现。3.4.2 查看日志文件系统查看日志文件系统日
30、志文件(Log files)是包含关于系统消息的文件,包括内核、服务、在系统上运行的应用程序等。不同的日志文件记载不同的信息。 1. 定位日志文件定位日志文件多多数数日日志志文文件件位位于于 /var/log /var/log 目目录录中中。某某些些程程序序如如 httpd httpd 和和 samba samba 在在 /var/log /var/log 中中有有单单独独的的存存放放日日志志文件的目录。文件的目录。2.2.放日志文件的目录。放日志文件的目录。 注注意意,日日志志文文件件目目录录中中会会有有多多个个后后面面带带有有数数字字的的文文件件。这这些些文文件件是是在在日日志志文文件件被
31、被循循环环时时创创建建的的。日日志志文文件件被被循循环环使使用用,因因此此文文件件不不会会变变得得太太大大。 logrotate logrotate 软软件件包包中中包包含含一一个个能能够够自自动动根根据据 /etc/logrotate.conf /etc/logrotate.conf 配配置置文文件件和和 /etc/logrotate.d /etc/logrotate.d 目目录录中中的的配配置置文文件件来来循循环环日日志志文文件件的的 cron cron 任任务务。按按照照默默认认配配置置,日日志志每每周周都都被被循循环,并被保留四周之久。环,并被保留四周之久。 2. 查看日志文件查看日志
32、文件要在互动的、真实时间的应用程序中查看系统日志文件,可使用日志查看器。要启动日志查看器应用程序,可使用如下两种方法打开:(11)依次选择“主菜单系统工具系统日志”(22)在 shell终端提示下键入 redhat-logviewer 命令。 打开图345所示的日志查看器对话框。按照默认设置,当前可查看的日志文件每隔 30 秒被刷新一次。要改变刷新率,可从图345的下拉菜单中选择“编辑首选项”。如图346所示的窗口会出现。在“日志文件”标签中,点击刷新率旁边的上下箭头来改变它。可单击“关闭”按钮来返回到主窗口。刷新率会被立即改变。要手工刷新当前可以查看的文件,可从图345中选择“文件即刻刷新”或按“CtrlR”键。 3. 检查日志文件检查日志文件日志查看器可以被配置在包含警告关键字的行旁边来显示警告图标。要添加警告词,从图3-4-5中的下拉菜单中选择“编辑首选项”,然后选中“警告”标签,打开图346所示的对话框。单击“添加”按钮来添加警告词。要删除一个警告词,可从列表中选择它,然后单击“删除”。 3.5控制面板和设置管理工具控制面板和设置管理工具3.5.1 Red Hat的控制面板的控制面板3.5.2 setup配置工具配置工具3.5 基本系统恢复3.5.1 常见问题3.5.2 引导入救援模式3.5.3 引导入单用户模式3.5.4 引导入紧急模式本章小结