1、LINUX网络操作系统,主讲教师:马启元 授课专业:网站规划与开发技术,第三章 系统管理,主要内容 用户和工作组管理进程管理查看登录用户及日志文件信息,第一节 概述,简述:用户是Linux系统的一个帐户,组是一个包含用户的对象,使用组可以简化网络的维护和管理,当把用户添加到某个组时,该用户将拥有分配给那个组的权利和权限,第一节的主要内容,用户和组文件 用户和组帐户的维护命令 用户和组的状态命令,1. 用户账号文件passwd Passwd 是一个文本文件,用于定义系统的用户账号,该文件位于“/etc”目录下。它包含了一个系统账户列表,给出每个账户一些有用的信息,例如,用户 ID、组 ID、主目
2、录、shell等等。由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。 passwd文件中每行定义一个用户账号,一行中又划分为多个字段定义用户的账号的不同属性,各字段用“:”隔开。图3-1中显示了passwd文件的前10行内容。在图中显示出了文件显示各用户的每一个字段,各字段的说明如表3-1所示。,用户和工作组管理,图3-1 passwd文件的属性及部分内容,字 段 说 明 Account 使用者在系统中的名字,它不能包含大写字母。 Password 用户口令,出于安全考虑,现在不使用该字段保存口令, 而用字母“x”来填充该字段,真正的密码保存在shadow文件。
3、 UID 用户 ID 号,惟一表示某用户的数字。 GID 用户所属的私有组号,该数字对应group文件中的GID。 GECOS 这字段是可选的,通常用于保存用户命名的信息。 Directory 用户的主目录,用户成功登录后的默认目录。 shell 用户所使用的shell,如该字段为空则使用“/bin/sh”。,表3-1 passwd文件各字段说明,在shadow文件中,每行定义了一个用户信息,行中各字段各字段用“:”隔开。为进一步提高安全性,shadow文件中保存的是已加密的口令。图3-2中显示了shadow文件的前10行内容。,用户口令文件shadow,从图3-2中可以看出,“/etc/sh
4、adow”文件中的每个记录用“:”隔开为9个域,每个域的含义分别为: 登录名 加密口令 口令上次更改时距1970年1月1日的天数 口令更改后不可以更改的天数 口令更改后必须再更改的天数(有效期) 口令失效前警告用户的天数 口令失效后距账号被查封的天数 账号被封时距1970年1月1日的天数 保留未用,用户组是逻辑地组织用户账号集合的方便途径,它允许用户在组内共享文件。系统上的每一个文件都有一个用户和一个组的属主。使用“ls l”命令可以看到每一个文件的属主和组。系统上的每个组,在/etc/passwd文件中有一行记录,记录的格式为:groupname : passwd : GID : userl
5、ist,用户组账号文件group,表3-2 group文件字段说明 字 段 说 明 Groupname 是组的名字 Passwd 是组的加密口令 GID 是系统区分不同组的ID,在/etc/passwd域中的GID域是用这个数来指定用户的缺省组。 Userlist 是用“,”分开的用户名,列出的是这个组的成员。,图3-3中显示了shadow文件的前10行内容。,gshadow文件用于定义用户组口令、组管理员等信息,该文件只有root用户可以读取。Gshadow文件中每行定义一个用户组信息,行中各字段间用“:”分隔,每行记录的格式为: groupname : Encrypted password
6、: Group administrators: Group members 各字段的的含义如表3-3所示。在图3-4中给出了该文件的属性及文件的部分内容。 表3-3 group文件字段说明 字 段 说 明 Groupname 用户组名称,该字段与group文件中的组名称对应。 Encrypted password 用户组口令,该字段用于保存已加密的口令 Group administrators 组的管理员账号,管理员有权对该组添加删除账号。 Group members 属于该组的用户成员列表,列表中多个用户间用“,” 分隔。,用户口令文件gshadow,图3-4 group文件的属性及部分内容
7、,1. 增加用户帐号 在命令行下使用 useradd 命令: useradd 用户名 该命令做了下面几件事: 1)在 /etc/passwd 文件中增添了一行记录; 2)在 /home 目录下创建新用户的主目录,并将 /etc/skel 目录中的文件拷贝到该目录中去;但是使用了该命令后,新建的用户暂时还无法登录,因为还没有为该用户设置口令,需要再用 passwd 命令为其设置口令后,才能登录。用户的 UID 和 GID 是 useradd 自动选取的,它是将 /etc/passwd 文件中的 UID 加 1,将 etc/group 文件中的 GID 加 1。,用户和组账户的维护命令,增加新用户
8、时,系统将为用户创建一个与用户名相同的组,称为私有组。这一方法是为了能让新用户与其他用户隔离,确保安全性的措施 下面通过增加一个用户“maqiyuan”,以及查看其相关信息,来帮助用户理解该命令所执行的操作。其在终端上的操作命令及响应如图3-5所示。#useradd maqiyuan /建立用户账号#tail -l /etc/passwd /查看password文件中添加的用户 账号信息#tail -l /etc/shadow # ls /home /查看所建立账号的主目录,选项 功能描述 -g 用于添加用户账号时指定该用户的私 有组。如不指定“-g”参数,useradd命 令将自动建立与用户
9、账号同名的组作 为该账号的私有组。 -D 用于显示或设置useradd命令所使用的 默认值 在“-g”选项时,其语法格式如下:useradd g 组名 用户名 在“-D”选项中,如果是用来修改useradd命令所使用的默认值,那么该命令使用的语法格式如下: useradd D -g group-b base-s shell-f inactive-e expire,图3-5 增加用户及相关操作,usermod命令可用来修改用户帐号的各种属性,包括用户主目录、私有组、登录、shell等内容。Usermod的命令格式如下:usermod 参数 用户帐号该命令的各个参数说明如下:-c : 修改用户帐号
10、的备注文字。 -d: 修改用户登入时的目录。 -e : 修改帐号的有效期限。 -f :修改在密码过期后多少天即关闭该帐号。 -g: 修改用户所属的群组。,. 修改用户账号usermod,下面举例说明该命令的使用方法: (1)修改用户名,把用户名“zhangzhenbo”改名为“zhenbo”,使用的命令是: # usermod l zhenbo zhangzhenbo (2)锁定“lyd”用户,使其不能登录。命令如下: # usermod L zhenbo (3)解锁“lyd”用户账号,使其可以登录。命令如下: # usermod U zhenbo,userdel命令用于删除指定的用户账号。其
11、使用的语法格式为:userdel -r用户账号 需要补充说明的是userdel命令可删除用户账号与相关的文件。若不加参数,则仅删除用户账号,而不删除相关文件。 其中参数“-f”是用来删除用户登入目录以及目录中所有文件。 下面举例说明该命令的使用方法: #grep zhenbo /etc/passwd /查询用户账号zhenbo 否存在 #userdel zhenbo /删除zhenbo账号 #grep zhenbo /etc/passwd /再次查询用户账号zhenbo是 否存在 #ll d /home /查询用户zhenbo的主 目录是否还存在 #userdel r zhenbo /删除用户
12、的同时删除其工作主 目录,删除用户userdel,groupadd命令可指定群组名称来建立新的群组账号。该组账号的ID值必须是惟一的,且数值不可为负。预设的最小值不得小于500,且每增加一个组账号ID值逐次增加。ID值0499是保留给系统账号使用。该指令使用的语法格式为:groupadd -r group 其中“-r”参数是用来建立系统账号。系统账号的ID值不能大于500。下面举例说明该命令的使用方法: # groupadd lbgroup /建立组账号lbgroup # grep lbgroup /etc/group /查询group文件中lbgroup组是 否建立,组增加命令groupad
13、d,groupmod命令用来更改群组识别码或名称。该命令的语法格式为: groupmod -g -n 群组名称命令中所使用的参数说明如下: -g 设置欲使用的群组识别码。 -o 重复使用群组识别码。 -n 设置欲使用的群组名称。,组账号修改,下面举例说明该命令的使用方法: # grep lbgroup /etc/group /查询group文件 中lbgroup组属性 #groupmod g 503 lbgroup /改变lbgroup组 的GID为503 # grep lbgroup /etc/group /查询操作结果是 否正确 #groupmod n ydgroup lbgroup /改
14、变lbgroup组 名为ydgroup # grep 503 /etc/group /查询操作结果是 否正确,groupdel命令用于删除指定的组账号,若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。该命令的语法格式为:groupdel 群组名称,删除组账号,出于系统安全考虑,Linux系统中的每一个用户除了有其用户名外,还有其对应的用户口令。因此使用useradd命令增加时,还需使用passwd命令为每一位新增加的用户设置口令;用户以后还可以随时用passwd命令改变自己的口令。该命令的一般格式为: passwd 用户名其中用户名为需要修改口令的用户名。只有超级用户可以使用“
15、passwd 用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令修改自己的口令。,口令维护命令,另外,passwd命令还可以使用一些参数选项,这些参数选项可对账号的口令进行不同的操作,但这些带参数的passwd命令只有root用户可以使用。这些参数选择包括: -S:用于查询指定用户账号的状态。 -l:用于锁定账号的口令。 -u:解除锁定账号的口令。 -d:删除指定账号的口令。,1. gpasswd命令gpasswd命令可用于把一个账户添加到组、把一个账户从组中删除、把一个账户设为组管理员。(1)添加用户到使用的命令格式为:gpasswd a 用户账号名 组账号名(2)从组中删
16、除用户的命令格式为:gpasswd d 用户账号名 组账号名(3)设置用户为组管理员的命令格式为:gpasswd -A 组管理员用户列表 用户组,组中用户成员的维护,2. whoami命令whoami命令用于显示登录者自身的用户名称,本指令相当于执行“id un”指令。 3. su命令su命令是用来将当前用户转换为其他用户身份。其命令的语法格式为:su -flmp -c -s 用户帐号需要指出的是su命令可让用户暂时变更登入的身份。变更时须输入所要变更的用户账号与密码。该命令中的选项参数说明如下:, -c:执行完指定的指令后,即恢复原来的身份。 -f:适用于csh与tsch,使shell不用去
17、读取启动文件。 -:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。 -m,-p:变更身份时,不要变更环境变量。 -s:指定要执行的shell。 用户帐号:指定要变更的用户。若不指定此参数,则预设变更为root。,4. groups命令groups命令用于显示指定用户所属的组,如未指定用户则显示当前用户所属的组。该命令的语法格式为:groups 用户名,案 例,图 示:,注释: 1. 软件系的教师可以访问 /file, /411目录2. 网络系的教师可以访问 /file, /511目录,案例分析:,建立存放公共文件的 /file
18、目录及管理员账号。,建立各个部门允许访问的目录及该目录所属的工作组。,为公司员工建立账号,一个部门的员工属于同一个工作组。,对各部门的主目录、/file目录设定相应权限。,对员工变动之后的访问权限进行更改,案例实施:,建立公司的公共文件保存目录 /file,创建管理员用户zhang,指定该管理员的登录目录为/file目录。参考命令:mkdir /file useradd -d /file zhangpasswd zhangchown zhang /file,案例实施:,2. 为各部门创建允许访问的目录及工作组。 参考命令: mkdir /511mkdir /411groupadd wanglu
19、o groupadd ruanjian,案例实施:,3.为各个用户创建用户账号,将用户划分到相应的用 户组当中 参考命令:useradd g wangluo mapasswd mauseradd g ruanjian wangpasswd wang,案例实施:,4. 修改目录的权限。 参考命令:chmod 744 /filechmod 740 /511chgrp wangluo /511chmod 740 /411chgrp ruanjian /411gpasswd -a zhang wangluogpasswd -a zhang ruanjian,案例实施:,5. 对员工变动之后的权限进行更
20、改 参考命令:useradd zhangzhenbouserdel -r zhangzhenbousermod -g wangluo wanghao,用户和组文件: /etc/passwd , /etc/group 用户和组帐户的维护命令: useradd, usermod, userdel groupadd, gpasswd, chgrp 用户和组的状态命令: id, su,总 结,课后作业,根据案例要求,以华夏数码公司为例,创建满足要求的管理员、目录、工作组等,要求每个部门也要有一个管理员,他可以在所属部门的目录中发布文件,删除过期文件等。,3.3 进程管理,3.3.1 进程的定义Linu
21、x是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。,那到底什么叫进程?Linux系统上所有运行的程序都可以称之为一个进程。Linux用分时管理方法使所有的任务共同分享系统资源。进程的一个比较正式的定义是在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。,3.3.1 进程的定义,3.3.2 报
22、告进程状态,要对进程进行监测和控制,首先必须要了解当前进程的情况,而ps命令就是最基本同时也是非常强大的进程查看命令。ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令。其命令语法格式如下: ps 选项,3.3.2 报告进程状态,当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程这个组合键是不能达到目的的。这时就必须使用kill命令,该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。,kill命令的语法格式很简单,大致有
23、以下两种方式:kill -s 信号 | -p -a 进程号 kill -l 信号 命令中的参数说明如下: -s:指定需要送出的信号。既可以是信号名也可以对应数字。 -p:指定kill命令只是显示进程的pid,并不真正送出结束信号。 -l:显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。,3.3.4 进程睡眠,sleep命令可使当前正在执行的进程在规定的时间内处于睡眠。其使用的语法格式为:sleep time 说明:time为进程将睡眠的时间,以秒为单位。例如:$ sleep time,3.4.1 识别Linux中的用户,1. 查看用户的操作系统管理员在任一时刻都可查看用户的行为,在终端的提示符下输入w命令即可 命令响应中所示的信息分别说明如下(书69页)使用的命令形式如下: # w root,2.查看登录用户系统管理员若想知道某一时刻有哪些用户登录到系统,可以使用系统提供的who命令,该命令可以查看当前登录系统的用户及其他相关系统信息。,3. 查看登录用户历史系统管理员可以随时查看用户登录的历史行为,还可查看某一用户曾经登录到的系统,这些功能使用last命令即可实现。,