第3章Linux系统管理本章学习目标在Linux系统中,虽然有很多应用都使用图形界面,但是大多数使用和管理Linux的实用程序和技巧还是通过键入命令来运行的。在本章中,将介绍一些基本的Linux命令,并通过一些实际的例子使读者边学边用,让读者尽快熟悉Linux系统。。通过对本章的学习,读者应该掌握以下主要内容:了解对系统管理的具体工作。Ø理解对用户和工作组管理的基本概念及相关的管理方法。理解文件系统管理的基本概念及相关的管理方法。3.1系统管理概述3.2用户和工作组管理1.用户账号文件——passwdPasswd是一个文本文件,用于定义系统的用户账号,该文件位于“/etc”目录下。它包含了一个系统账户列表,给出每个账户一些有用的信息,例如,用户ID、组ID、主目录、shell等等。由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。passwd文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用“:”隔开。图3-1中显示了passwd文件的前10行内容。在图中显示出了文件显示各用户的每一个字段,各字段的说明如表3-1所示。图3-1passwd文件的属性及部分内容表3-1passwd文件各字段说明字段说明Account使用者在系统中的名字,它不能包含大写字母。Password用户口令,出于安全考虑,现在不使用该字段保存口令,而用字母“x”来填充该字段,真正的密码保存在shadow文件。UID用户ID号,惟一表示某用户的数字。GID用户所属的私有组号,该数字对应group文件中的GID。GECOS这字段是可选的,通常用于保存用户命名的信息。Directory用户的主目录,用户成功登录后的默认目录。shell用户所使用的shell,如该字段为空则使用“/bin/sh”。2.用户口令文件——shadow在shadow文件中,每行定义了一个用户信息,行中各字段各字段用“:”隔开。为进一步提高安全性,shadow文件中保存的是已加密的口令。图3-2中显示了shadow文件的前10行内容。从图3-2中可以看出,“/etc/shadow”文件中的每个记录用“:”隔开为9个域,每个域的含义分别为:Ø登录名Ø加密口令Ø口令上次更改时距1970年1月1日的天数Ø口令更改后不可以更改的天数Ø口令更改后必须再更改的天数(有效期)Ø口令失效前警告用户的天数Ø口令失效后距账号被查封的天数Ø账号被封时距1970年1月1日的天数Ø保留未用3.用户组账号文件——group用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。系统上的每一个文件都有一个用户和一个组的属主。使用“ls–l”命令可以看到每一个文件的属主和组。于系统上的每个组,在/etc/passwd文件中有一行记录,记录的格式为:groupname:passwd:GID:userlist表3-2group文件字段说明字段说明Groupname是组的名字Passwd是组的加密口令GID是系统区分不同组的ID,在/etc/passwd域中的GID域是用这个数来指定用户的缺省组。Userlist是用“,”分开的用户名,列出的是这个组的成员。图3-3中显示了shadow文件的前10行内容。4.用户口令文件——gshadowgshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。Gshadow文件中每行定义一个用户组信息,行中各字段间用“:”分隔,每行记录的格式为:groupname:Encryptedpassword:Groupadministrators:Groupmembers各字段的的含义如表3-3所示。在图3-4中给出了该文件的属性及文件的部分内容。表3-3group文件字段说明字段说明Groupname用户组名称,该字段与group文件中的组名称对应。Encryptedpassword用户组口令,该字段用于保存已加密的口令Groupadministrators组的管理员账号,管理员有权对该组添加删除账号。Groupmembers属于该组的用户成员列表,列表中多个用户间用“,”分隔。图3-4group文件的属性及部分内容3.2.2用户和组账户的维护命令1.增加用户帐号在命令行下使用useradd命令:useradd用户名该命令做了下面几件事:1)在/etc/passwd文件中增添了一行记录;2)在/home目录下创建新用户的主目录,并将/etc/skel目录中的文件拷贝到该目录中去;但是使用了该命令后,新建的用户暂时还无法登录,因为还没有为该用户设置口令,需要再用passwd命令为其设置口令后,才能登录。用户的UID和GID是useradd自动选取的,它是将/etc/passwd文件中的UID加1,将etc/group文件中的GID加1。增加新用户时,系统将为用户创建一个与用户名相同的组,称为私有组。这一方法是为了能让新用户与其他用户隔离,确保安全性的措施下面通过增加一个用户“liuyidan”,以及查看其相关信息,来帮助用户理解该命令所执行的操作。其在终端上的操作命令及响应如图3-5所示。#useraddliuyidan//建立用户账号#tail-l/etc/passwd//查看password文件中添加的用户账号信息#tail-l/etc/shadow#ls/home//查看所建立账号的主目录图3-5增加用户及相关操作选项功能描述-g用于添加用户账号时指定该用户的私有组。如不指定“-g”参数,useradd命令将自动建立与用户账号同名的组作为该账号的私有组。-D用于显示或设置useradd命令所使用的默认值Ø在“-g”选项时,其语法格式如下:useradd–g组名用户名Ø在“-D”选项中,如果是用来修改useradd命令所使用的默认值,那么该命令使用的语法格式如下:useradd–D[-ggroup][-bbase][-sshell][-finactive][-eexpire]2.修改用户账号——usermodusermod命令可用来修改用户帐号的各种属性,包括用户主目录、私有组、登录、shell等内容。Usermod的命令格式如下:usermod[-LU][-c备注][-d登入目录][-e有效期限][-f缓冲天数][-g群组][-G群组][-l帐号名称][-s][-u][用户帐号]该命令的各个参数说明如下:-c备注:修改用户帐号的备注文字。-d登入目录:修改用户登入时的目录。-e有效期限:修改帐号的有效期限。-f缓冲天数:修改在密码过期后多少天即关闭该帐号。-g群组:修改用户所属的群组。-l帐号名次:修改用户帐号的名称下面举例说明该命令的使用方法:(1)修改用户名,把用户名“liuyidan”改名为“lyd”,使用的命令是:#usermod–llydliuyidan(2)锁定“lyd”用户,使其不能登录。命令如下:#usermod–Llyd(3)解锁“lyd”用户账号,使其可以登录。命令如下:#usermod–Ulyd3.删除用户——userdeluserdel命令用于删除指定的用户账号。其使用的语法格式为:userdel[-r][用户账号]需要补充说明的是userdel命令可删除用户账号与相关的文件。若不加参数,则仅删除用户账号,而不删除相关文件。其中参数“-f”是用来删除用户登入目录以及目录中所有文件。下面举例说明该命令的使用方法:#greplyd/etc/passwd//查询用户账号lyd是否存在#userdellyd//删除lyd账号#greplyd/etc/passwd//再次查询用户账号lyd是否存在#ll–d/home//查询用户lyd的主目录是否还存在#userdel–rlyd//删除用户的同时删除其工作主目录4.组增加命令——groupaddgroupadd命令可指定群组名称来建立新的群组账号。该组账号的ID值必须是惟一的,且数值不可为负。预设的最小值不得小于500,且每增加一个组账号ID值逐次增加。ID值0~499是保留给系统账号使用。该指令使用的语法格式为:groupadd[-r]group其中“-r”参数是用来建立系统账号。系统账号的ID值不能大于500。下面举例说明该命令的使用方法:#groupaddlbgroup//建立组账号lbgroup#greplbgroup/etc/group//查询group文件中lbgroup组是否建立#groupadd–rsyslbgroup//建立系统组账号#greplbgroup/etc/group//查询group文件中syslbgroup组是否建立5.组账号修改groupmod命令用来更改群组识别码或名称。该命令的语法格式为:groupmod[-g群组识别码-o][-n新群组名称][群组名称]命令中所使用的参数说明如下:Ø-g群组识别码设置欲使用的群组识别码。Ø-o重复使用群组识别码。Ø-n新群组名称设置欲使用的群组名称。下面举例说明该命令的使用方法:#greplbgroup/etc/group//查询group文件中lbgroup组属性#groupmod–g503lbgroup//改变lbgroup组的GID为503#greplbgroup/etc/group//查询操作结果是否正确#groupmod–nydgrouplbgroup//改变lbgroup组名为ydgroup#grep503/etc/group//查询操作结果是否正确6.删除组账号groupdel命令用于删除指定的组账号,若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。该命令的语法格式为:groupdel[群组名称]7.口令维护命令出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用passwd命令改变自己的口令。该命令的一般格式为:passwd[用户名]其中用户名为需要修改口令的用户名。只有超级用户可以使用“passwd用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令。另外,passwd命令还可以使用一些参数选项,这些参数选项可对账号的口令进行不同的操作,但这些带参数的passwd命令只有root用户可以使用。这些参数选择包括:Ø-S:用于查询指定用户账号的状态。Ø-l:用于锁定账号的口令。Ø-u:解除锁定账号的口令。Ø-d:删除指定账号的口令。8.组中用户成员的维护gpasswd命令可用于把一个账户添加到组、把一个账户从组中删除、把一个账户设为组管理员。(1)添加用户到使用的命令格式为:gpasswd–a用户账号名组账号名(2)从组中删除用户的命令格式为:gpasswd–d用户账号名组账号名(3)设置用户为组管理员的命令格式为:gpasswd-A组管理员用户列表用户组3.2.3用户和组的状态命令1.id命令id命令用于显示用户当前的UID,gid以及所属群组的组列表该指令的语法格式为:id[选项][用户名称]该命令所使用的选项参数说明如下:Ø-g:显示用户所属群组的ID。Ø-G:显示用户所属附加群组的ID。Ø-n:显示用户,所属群组或附加群组的名称。Ø-r:显示实际ID。Ø-u:显示用户ID。2.whoami命令whoami命令用于显示登录者自身的用户名称,本指令相当于执行“id–un”指令。3.su命令su命令是用来将当前用户转换为其他用户身份。其命令的语法格式为:su[-flmp][-][-c指令][-s][用户帐号]需要指出的是su命令可让用户暂时变更登入的身份。变更时须输入所要变更的用户账号与密码。该命令中的选项参数说明如下:Ø-c指令:执行完指定的指令后,即恢复原来的身份。Ø-f:适用于csh与tsch,使shell不用去读取启动文件。Ø-:改变身份时,也同时变更