Day09 红帽Linux — 1管理本地用户和组

红帽Linux — 1管理本地用户和组


一、组的概念

组是需要共享文件和其他系统资源访问权限的用户集合,可以对一组用户授予文件访问权限,实现同一管理

  • 创建用户时会自动以用户名字来创建一个同名组,后续用户改名,组名不变
  • 组也有密码,一般用于用户添加组时提高安全性

组类型

  • 主要组:定义在 /etc/passwd 中第四列的,就是用户的主要组,

  • 附加组:定义在 /etc/group 中用户的组

一个用户只能有一个主要组,但可以有多个附加组,用户将继承组的权限。


使用 id 命令可以查看用户的主要组和补充组

id <option> [用户名]

optionfunction
-g --group显示用户所属组的ID
-G --groups显示用户所属附加组群的ID
-n --name显示用户所属组或附加组群的名称
-r --real显示实际ID
-u --user显示用户ID

组信息

/etc/group
  1. 组的名称
  2. 组的密码,已经转移到 /etc/gshadow 中,基本很少使用
  3. 组 ID,也就是 GID
  4. 组成员

在这里插入图片描述


/etc/gshadow
  • 组名:组密码:组管理员:组成员

  • 默认情况下组不设置密码

在这里插入图片描述


小测验

题目

在这里插入图片描述
在这里插入图片描述

1.B 2.A × => C √ 3.D 4.A 5.C

6.B 7.D


答案

在这里插入图片描述
在这里插入图片描述


二、获取超级用户访问权限

用户权限

  • 普通用户只能访问自己目录下的文件,以及可移动硬盘。固定硬盘及其他高级管理需要root用户权限
  • root具有高于文件系统的至高权限
  • 在Linux上可以通过临时获得超级用户特权,来降低root用户泄露的风险

使用su切换用户

su <user>			#切换用户,不切换环境变量
su - <user>			#切换用户,同事切换环境变量
exit	或	Ctrl + D	#退出用户

需输入目标用户的密码


使用sudo获取超级用户权限

sudo <command>
sudo -i [user] 			#加载用户变量,并跳转到目标用户home目录
sudo -s	[user]			#不加载用户变量,不跳转目录		未填user时默认到root

需在配置文件/etc/sudoers中提前声明权限


配置sudo(/etc/sudoers)

打开配置文件
visudo
#或
vim /etc/sudoers
给用户或组添加sudo权限
# userA在名为Host_Name的主机上,可以通过sudo,以userB、userC的权限执行 command1
userA  Host_Name=(userB,userC) \<command1>	

# 给用户stu添加root权限
# 在 root ALL=(ALL) ALL 后加入
stu ALL=(ALL) ALL	

# 允许用户在不输入密码的前提下以其他用户身份允许命令:
stu ALL=(ALL) NOPASSWD:ALL
  • 需设定:

    • 需借用权限的用户或组,在开头的位置加上 % 代表组
    • 借用哪个主机上哪个用户的权限
    • 借用的命令
  • 注意: sudo 的使用需要使用密码,使用的密码是当前用户的密码。输入密码后一段时间内可以进行配置,一段时间后需要再次输入密码,默认是十分钟。


三、管理本地组

新建用户组

groupadd <group>
  • 创建组时,会使用 /etc/login.defs 中指定范围的GID,一般是1000后

  • -g 选项给创建的组设定特定的 GID

  • -r 选项给系统组指定特定的 GID,范围由 /etc/login.defs 中的 SYS_GID_MIN 和 SYS_GID_MAX 来定义,通常是201~999


删除用户组

groupdel <group>

修改组属性

groupmod [option] <group>
指令
groupmod -n <group2> <group1>		#将group1组名修改为group2
groupmod -g <number> <group>
例子
  • 修改group1的名称为group01

    groupmod -n group01 group1
    #group01 作为 -n 的属性先写,group1作为命令的参数放最后
    
  • 修改group01的GID为2000

    groupmod -g 2000 group01
    

设置组成员

指令
gpasswd -a <user>, <user2> <group>				#组新加用户
gpasswd -d <user>, <user2> <group>				#组删除用户
usermod -G <group1>, <group..> <user>			#用户添加到多个组
gpasswd -A <user> <group>						#设置组管理员

gpasswd -M <user>, <user2> <group>		#使用-M选项添加用户,并覆盖组内原有用户
例子
  • 添加用户tom,lisa,vivian到test用户组中

    gpasswd -M tom, lisa, vivian test	#使用-M选项添加多个用户到组,并覆盖组内原有用户
    

四、管理用户密码

密码存储文件(/etc/shadow)

在这里插入图片描述

  1. 用户名
  2. 加密的密码
  3. 自上次更改密码至今的天数,从1970年1月1日记起
  4. 最短可该密码需间隔的天数
  5. 最长多久必须改密码,空字段表示不会根据上次更改以来的时间失效
  6. 警告期,当用户在截止日期前多少天,会受到密码过期警告
  7. 非活动期。密码过期后还能登录的天数,过了后,账户将被锁定
  8. 账户过期日。自1970年1月1日起的天数,空字段表示不会在特定日期失效
  9. 最后一字段为空,预留给以后使用

密码加密与密码验证

  • 密码使用哈希算法,随机选取加密密码的salt,以不同的哈希算法加密生成密码哈希
  • 两用户密码相同,因salt不同,在/etc/shadow/中显示的也是不一样的
  • 验证密码时,将用户的salt和键入的未加密密码组合,用指定的哈希算法加密,若结果与保存的密码哈希匹配,则输入了正确的密码。这样既可以让系统判断用户密码是否正确,又不以登录密码的形式存储密码。

配置密码属性

配置文件(/etc/login.defs)

在这里插入图片描述

修改配置文件
vim /etc/login.defs
?PASS_MAX_DAYS
99999 改为 180
#密码180天失效,默认设置只对之后创建的新用户有效
指令
chage -m 0 <user>	#最短0天需改密码
chage -M 90 <user>	#最长期限90天需改密码
chage -W 7 <user>	#密码到期前警告的时长
chage -I 7 <user>	#到期后账户多长时间锁定
chage -l <user>		#查看用户密码期限详情
chage -d 0 <user> 	#强制第一次登录时改密码
chage -E $(date -d "+180 days" +%F) operator1	#设定用户180天后到期
date -d "+90 days"	#计算未来时间
#除了用 chage -E 设定账户到期日期外,还能用 usermod -L -e 设定锁定用户的时间,时间必须时从1970-1-1起的天数或YYYY-MM-DD的格式
sudo usermod -L -e $(date -d "+180 days" +%F) operator1	#设定用户180天后锁定
#到期或锁定后,无法以交互的方式登录(账户、密码的形式)

其它

#修改用户登录方式 登录/bin/bash	非交互/sbin/nologin 
usermod -s /sbin/nologin user03

参考资料:Red Hat Training and Certification

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值