第3章管理Linux服务器的用户和组1第3章 管理Linux服务器的用户和组“十二五”“十三五”职业教育国家规划教材首届全国教材建设奖全国优秀教材一等奖 《Linux网络操作系统项目教程(RHEL 8/CentOS 8)(微课版)(第4版)》第3章管理Linux服务器的用户和组2 能力要求 CAPACITY了解用户和组配置文件。熟练掌握Linux下用户的创建与维护管理的方法。熟练掌握Linux下组的创建与维护管理的方法。熟悉用户账户管理器的使用方法。第3章管理Linux服务器的用户和组3 内容导航 CONTENTS项目知识准备项目设计与准备项目实施项目实录:管理用户和组 一、项目知识准备第3章管理Linux服务器的用户和组4 理解用户账户和组用户账户是用户的身份标识。用户通过用户账户可以登录到系统,并且访问已经被授权 的资源。Linux系统下的用户账户分为两种:普通用户账户和超级用户账户(root)。在Linux系统中,为了方便管理员的管理和用户工作的方便,产生了组的概念。组是具 有相同特性的用户的逻辑集合,在做资源授权时可以把权限赋予某个组,组中的成员即可自 动获得这种权限。一个用户账户可以同时是多个组的成员,其中某个组是该用户的主组(私 有组),其他组为该用户的附属组(标准组)。
一、项目知识准备第3章管理Linux服务器的用户和组5 理解用户账户和组用户和组相关的一些基本概念如下表:root用户的UID为:系统用户的UID从1到999 ;普通用户的UID可以在创建时由管理员 指定,如果不指定,用户的UID默认从1 000开始顺序编号。在Linux系统中,创建用户账户 的同时也会创建一个与用户同名的组,该组是用户的主组。普通组的GID默认也是从1 000 开始编号。概 念描 述用户名用来标识用户的名称,可以是字母、数字组成的字符串,区分大小写密码用于验证用户身份的特殊验证码用户标识(User ID ,UID ) 用来表示用户的数字标识符用户主目录用户的私人目录,也是用户登录系统后默认所在的目录登录shell用户登录后默认使用的shell程序,默认为/bin/bash组具有相同属性的用户属于同一个组组标识(Group ID ,GID ) 用来表示组的数字标识符 一、项目知识准备第3章管理Linux服务器的用户和组6 理解用户账户文件用户账户信息和组信息分别存储在用户账户文件和组文件中。1./etc/passwd文件准备工作:新建用户bobby、user1、user2,将user1和user2加入bobby组。
[root@Server01 ~]# useradd bobby[root@Server01 ~]# useradd user1[root@Server01 ~]# useradd user2[root@Server01 ~]# usermod -G bobby user1[root@Server01 ~]# usermod -G bobby user2 一、项目知识准备第3章管理Linux服务器的用户和组7 理解用户账户文件用户账户信息和组信息分别存储在用户账户文件和组文件中。用vim编辑器(或者使用cat /etc/passwd)打开passwd文件,内容格式如下:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinuser1:x:1002:1002::/home/user1:/bin/bash 一、项目知识准备第3章管理Linux服务器的用户和组8 理解用户账户文件用户账户信息和组信息分别存储在用户账户文件和组文件中。2 ./etc/shadow文件由于所有用户对/etc/passwd文件均有读取权限,为了增强系统的安全性,用户经过加 密之后的口令都存放在/etc/shadow文件中。
/etc/shadow文件只对root用户可读, shadow文件的内容形式如下 root:$6$.ogTGgxg60WtMR/w$xNVm8hVU1YVSjkKhtqGAkWgsDIvCuDOFgNl.0jec.myzm9tlZ3igOXgyX5UvGDvL8sptG8V NrKDsv8t0Qb0Pi/:18495:0:99999:7:::bin:*:18199:0:99999:7:::daemon:*:18199:0:99999:7:::bobby:!!:18495:0:99999:7:::user1:!!:18495:0:99999:7::: 一、项目知识准备第3章管理Linux服务器的用户和组9 理解用户账户文件用户账户信息和组信息分别存储在用户账户文件和组文件中。3 ./etc/login.defs文件建立用户账户时会根据/etc/login.defs文件的配置设置用户账户的某些选项。该配置文 件的有效设置内容及中文注释如下所示。MAIL_DIR /var/spool/mail //用户邮箱目录MAIL_FILE .mailPASS_MAX_DAYS 99999//账户密码最长有效天数PASS_MIN_DAYS 0//账户密码最短有效天数PASS_MIN_LEN 5//账户密码的最小长度PASS_WARN_AGE 7//账户密码过期前提前警告的天数UID_MIN1000//用useradd命令创建账户时自动产生的最小UID值UID_MAX60000//用useradd命令创建账户时自动产生的最大UID值GID_MIN1000//用groupadd命令创建组时自动产生的最小GID值GID_MAX60000//用groupadd命令创建组时自动产生的最大GID值USERDEL_CMD /usr/sbin/userdel_local //如果定义的话,将在删除用户时执行,以删除相应用户的计划作业和打印作业等CREATE_HOME yes//创建用户账户时是否为用户创建主目录 一、项目知识准备第3章管理Linux服务器的用户和组10 理解组文件组账户的信息存放在/etc/group文件中linux运维最佳实践,而关于组管理的信息(组口令、组管理员等) 则存放在/etc/gshadow文件中。
1./etc/group文件使用cat /etc/group命令可以查看整个文件内容组名称:组口令(一般为空,用x 占位):GID:组成员列表root:x:0:bin:x:1:daemon:x:2:bobby:x:1001:user1,user2user1:x:1002: 一、项目知识准备第3章管理Linux服务器的用户和组11 理解组文件组账户的信息存放在/etc/group文件中,而关于组管理的信息(组口令、组管理员等) 则存放在/etc/gshadow文件中。2 ./etc/gshadow文件使用cat /etc/gshadow命令可以查看整个文件内容(组名称:加密后的组口令(没有就用!):组的管理员:组成员列表)root:::bin:::daemon:::bobby:!::user1,user2user1:!::user2:!::第3章管理Linux服务器的用户和组12 内容导航 CONTENTS项目知识准备项目设计与准备项目实施项目实录:管理用户和组 二、项目设计与准备第3章管理Linux服务器的用户和组13 项目设计与准备当服务器安装完成后 ,需要对用户帐户和组、文件权限、RAID、LVM逻辑卷、磁盘配额 等内容进行管理。
在进行本项目的教学与实验前 ,需要做好如下准备:(1)已经安装好的RHEL 8。(2)RHEL 8安装光盘或ISO映像文件。(3)VMware 15.5以上虚拟机软件。(4)设计教学或实验用的用户及权限列表。本项目的所有实例都在服务器Server01上完成。第3章管理Linux服务器的用户和组14 内容导航 CONTENTS项目知识准备项目设计与准备项目实施项目实录:管理用户和组 三、项目实施第3章管理Linux服务器的用户和组15 任务3-1 新建用户在系统新建用户可以使用useradd或者adduser命令。useradd命令的格式是:useradd [选项] 【例3-1】新建用户user3,UID为1010,指定其所属的私有组为group1(group1 组的标识符为1010),用户的主目录为/home/user3 ,用户的shell为/bin/bash ,用 户的密码账户永不过期。[root@Server01 ~]# groupadd -g 1010 group1 //新建组group1 ,其GID为1010[root@Server01 ~]# useradd -u 1010 -g 1010 -d /home/user3 -s /bin/bash -p-f -1 user3[root@Server01 ~]# tail -1 /etc/passwduser3:x:1010:1010::/home/user3:/bin/bash[root@Server01 ~]# grep user3 /etc/shadow //grep用于查找文件里符合条件的字符串user318495:0:99999:7::://这种方式下生成的密码是明文,三、项目实施第3章管理Linux服务器的用户和组16 任务3-2 设置用户账户口令1.passwd命令指定和修改用户账户口令的命令是passwd。
超级用户可以为自己和其他用户设置 口令,而普通用户只能为自己设置口令。passwd命令的格式为:passwd [选项] [username]【例3-2】假设当前用户为root,则下面的两个命令分别为root用户修改自己的口 令和root用户修改user1用户的口令。//root用户修改自己的口令linux网络服务器配置与管理项目教程,直接用passwd命令回车即可[root@Server01 ~]# passwd//root用户修改user1用户的口令[root@Server01 ~]# passwd user1 三、项目实施第3章管理Linux服务器的用户和组17 任务3-2 设置用户账户口令2 .chage命令要修改用户账户口令,也可以用chage命令实现。【例3-3】设置user1用户的最短口令存活期为6天,最长口令存活期为60天,口令 到期前5天提醒用户修改口令。设置完成后查看各属性值。[root@Server01 ~]# chage -m 6 -M 60 -W 5 user1[root@Server01 ~]# chage -l user1 三、项目实施第3章管理Linux服务器的用户和组18 任务3-3 维护用户账户1.修改用户账户usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
usermod命令的参数以及作用如表所示:参 数作 用-c填写用户账户的备注信息-d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去-e账户的到期时间,格式为 YYYY-MM-DD-g变更所属用户组-G变更扩展用户组-L锁定用户禁止其登录系统-U解锁用户,允许其登录系统-s变更默认终端-u修改用户的 UID 三、项目实施第3章管理Linux服务器的用户和组19 任务3-3 维护用户账户2 .禁用和恢复用户账户有时需要临时禁用一个账户而不删除它。禁用用户账户可以用passwd或usermod 命令实现,也可以直接修改/etc/passwd或/etc/shadow文件。例如,暂时禁用和恢复user3账户,可以使用以下3种方法实现。(1)使用passwd命令(被锁定用户的密码必须是使用passwd命令生成的)[root@Server01 ~]# passwd -l user1//锁定用户user1锁定用户 user1 的密码 。passwd: 操作成功 三、项目实施第3章管理Linux服务器的用户和组20 任务3-3 维护用户账户2 .禁用和恢复用户账户(2)使用usermod命令[root@Server01 ~]# usermod -L user1//禁用user1账户[root@Server01 ~]# usermod -U user1//解除user1账户的锁定 三、项目实施第3章管理Linux服务器的用户和组21 任务3-3 维护用户账户2 .禁用和恢复用户账户(3)直接修改用户账户配置文件可将/etc/passwd文件或/etc/shadow文件中关于user1账户的passwd域的第一个 字符前面加上一个“*”,达到禁用账户的目的,在需要恢复的时候只要删除字符“*” 即可。
三、项目实施第3章管理Linux服务器的用户和组22 任务3-3 维护用户账户3 .删除用户账户要删除一个账户,可以直接删除/etc/passwd和/etc/shadow文件中要删除的用户 所对应的行,或者用userdel命令删除。userdel命令的格式为:userdel [-r] 用户名 三、项目实施第3章管理Linux服务器的用户和组23 任务3-4 管理组组管理包括新建组、维护组账户和为组添加用户等内容。1. 维护组账户创建组和删除组的命令与创建、维护账户的命令相似。创建组可以使用命令 groupadd或者addgroup。例如,创建一个新的组,组的名称为testgroup ,可用以下命令:[root@Server01 ~]# groupadd testgroup要删除一个组可以用groupdel命令linux修改文件名,例如删除刚创建的testgroup组时可用以下命令:[root@Server01 ~]# groupdel testgroup修改组的命令是groupmod,其命令格式为groupmod [选项] 组名 三、项目实施第3章管理Linux服务器的用户和组24 任务3-4 管理组组管理包括新建组、维护组账户和为组添加用户等内容。
2. 为组添加用户在Red Hat Linux中使用不带任何参数的useradd命令创建用户时,会同时创建一个 和用户账户同名的组,称为主组。当一个组中必须包含多个用户时,则需要使用附属组。 在附属组中增加、删除用户都用gpasswd命令。gpasswd命令的格式为gpasswd [选项] [用户] [组]例如,要把user1用户加入testgroup组,并指派user1为管理员,可以执行下列命令:[root@Server01 ~]# groupadd testgroup[root@Server01 ~]# gpasswd -a user1 testgroup[root@Server01 ~]# gpasswd -A user1 testgroup 三、项目实施第3章管理Linux服务器的用户和组25 任务3-5 使用su命令su命令su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地 切换到其他用户linux网络服务器配置与管理项目教程,比如从root管理员切换至普通用户[root@Server01 ~]# su - test[test@Server01 ~]$ 三、项目实施第3章管理Linux服务器的用户和组26 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。
1.vipw命令vipw命令在功能上等同于“vi /etc/passwd”命令,但是比直接使用vi命令更安全。 该命令的语法为:[root@Server01 ~]# vipw 三、项目实施第3章管理Linux服务器的用户和组27 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。2 .vigr命令vigr命令在功能上等同于“vi/etc/group”命令,但是比直接使用vi命令更安全。 vigr命令的语法为 :[root@Server01 ~]# vigr 三、项目实施第3章管理Linux服务器的用户和组28 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。3 .pwck命令pwck命令用于验证用户账户文件认证信息的完整性。该命令检测/etc/passwd文件 和/etc/shadow文件每行中字段的格式和值是否正确。pwck命令的语法为 :[root@Server01 ~]# pwck 三、项目实施第3章管理Linux服务器的用户和组29 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。
4 .grpck命令grpck命令用于验证组文件认证信息的完整性。该命令还可检测/etc/group文件和 /etc/gshadow文件每行中字段的格式和值是否正确。grpck命令的语法为:[root@Server01 ~]# grpck 三、项目实施第3章管理Linux服务器的用户和组30 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。5 .id命令id命令用于显示一个用户的UID和GID以及用户所属的组列表。在命令行输入id直接 回车将显示当前用户的ID信息。id命令的语法为id [选项] 用户名例如,显示user1用户的UID、GID信息的实例如下所示:[root@Server01 ~]# id user1uid=8888(user1) gid=1002(user1) 组 =1002(user1),1011(testgroup),0(root) 三、项目实施第3章管理Linux服务器的用户和组31 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。6 .whoami命令whoami命令用于显示当前用户的名称。
whoami命令与id -un命令的作用相同。[root@Server01 ~]# su - user1[user1@Server01 ~]$ whoamiUser1[root@Server01 ~]# exit 三、项目实施第3章管理Linux服务器的用户和组32 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。7 .newgrp命令newgrp命令用于转换用户的当前组到指定的主组,对于没有设置组口令的组账户, 只有组的成员才可以使用newgrp命令改变主组身份到该组。如果组设置了口令,其他组 的用户只要拥有组口令也可以将主组身份改变到该组。 三、项目实施第3章管理Linux服务器的用户和组33 任务3-6 使用常用的账户管理命令账户管理命令可以在非图形化操作中对账户进行有效管理。7 .newgrp命令应用案例如下:[root@Server01 ~]# id//显示当前用户的giduid=0(root) gid=0(root) 组 =0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[root@Server01 ~]# newgrp group1//改变用户的主组[root@Server01 ~]# iduid=0(root) gid=1010(group1) 组 =1010(group1) 环境 =unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023[root@Server01 ~]# newgrp//newgrp命令不指定组时转换为用户的私有组[root@Server01 ~]# iduid=0(root) gid=0(root) 组 =0(root),1010(group1) 环境 =unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 三、项目实施第3章管理Linux服务器的用户和组34 3.4 企业实战与应用——账号管理实例1.情境假设需要的账号数据如表所示,你该如何操作?账号名称账号全名支持次要组是否可登录主机口 令myuser11st usermygroup1可以Passwordmyuser22nd usermygroup1可以Passwordmyuser33rd user无额外支持不可以password 三、项目实施第3章管理Linux服务器的用户和组35 3.4 企业实战与应用——账号管理实例2 .解决方案# 先处理账号相关属性的数据:[root@Server01 ~]# groupadd mygroup1[root@Server01 ~]# useradd -G mygroup1 -c "1st user" myuser1[root@Server01 ~]# useradd -G mygroup1 -c "2nd user" myuser2[root@Server01 ~]# useradd -c "3rd user" -s /sbin/nologin myuser3# 再处理账号的口令相关属性的数据:[root@Server01 ~]# echo "password" | passwd --stdin myuser1[root@Server01 ~]# echo "password" | passwd --stdin myuser2[root@Server01 ~]# echo "password" | passwd --stdin myuser3第3章管理Linux服务器的用户和组36 内容导航 CONTENTS项目知识准备项目设计与准备项目实施项目实录:管理用户和组 四、项目实录第3章管理Linux服务器的用户和组37 管理用户和组2 .项目实训目的 熟悉Linux用户的访问权限。
掌握在Linux系统中增加、修改、删除用户或用户组的方法。 掌握用户账户管理及安全管理 四、项目实录第3章管理Linux服务器的用户和组38 管理用户和组3 .项目背景某公司有60个员工,分别在5个部门工作,每个人工作内容不同。需要在服务器上为每个 人创建不同的账号,把相同部门的用户放在一个组中,每个用户都有自己的工作目录。另外, 需要根据工作性质对每个部门和每个用户在服务器上的可用空间进行限制。4 .项目实训内容练习设置用户的访问权限,练习账号的创建、修改、删除。5 .做一做根据项目实录视频进行项目的实训,检查学习效果。第3章管理Linux服务器的用户和组39 THANKS