Linux系统下的用户管理详解

Linux系统下的用户管理详解

1、用户及用户组存在的意义

1)用户存在的意义
计算机系统资源是有限的,如何合理分配系统资源呢?在解决这个问题时必须要有以下三个资源相互配合:
a)身份 account
b)授权 author
c)认证 auth
3A机制,3A机制组成了系统中最底层的安全架构。
2)用户组存在意义
用户组是一个逻辑容器,利用其可以对用户进行归类和统一授权。

2、用户及用户组在系统中的存在方式

计算机对数字(即用户id)敏感,人类对字符串(即用户名称)敏感,id(名称) 必须要记录到文件当中用户才能存在。用户本质上就是/etc/passwd文件中的一行字符,用户组存在的方式就是/etc/group文件中的一行字符。

3、用户切换

1)用户查看

whomai 							##查看当前用户
id 								##查看用户id信息
id -u 							##查看用户的用户id
id -g 							##查看用户主组id
id -G 							##查看用户所有的组的id
id -n 							##显示用户组名称
								##使用示例:id -un/id -gn/id -Gn

用户 id 范围:0-65535
0:Linux超级用户ID
1-999:Liunx系统自用ID
1000-65535:用户级ID
以上ID设定规则都被记录在/etc/login.defs
在这里插入图片描述

在这里插入图片描述
2)用户切换
su - username :切换用户同时切换用户使用的系统环境
说明:在切换用户时
超级用户root ----> 普通用户commonuser 不需要后者密码
普通用户commonuser ----> 超级用户root 需要密码
普通用户commonuser ----> 另一普通用户commonuser 需要密码
注意:在做用户切换时当使用完毕用户身份应及时退出,不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱。
在这里插入图片描述

4、用户涉及到的系统配置文件

/etc/passwd :用户身份信息文件,其中每一行代表一个用户,由以下8部分组成
用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group:组身份信息文件,其中每一行代表一个用户组,由以下4部分组成
组名称:组密码:组id:组的附加成员
/etc/skel/.* :用户环境配置文件模板
/etc/shadow :用户认证信息文件
/home/username :用户家目录
/var/spool/mail/username :用户邮箱文件

5、用户和用户组建立及删除

useradd username 			##用户建立
		-u id username 		##建立用户时指定用户id
					   		##uid的取值范围为2**16=0-65535
							##0 表示超级用户
							##1-200 系统预留id
							##201-999 系统用户
							##1000-60000 用户级用户
							##/etc/login.defs 记录用户建立的默认规则
		-g id username 		##建立用户时指定用户主组id
		-G id username 		##建立用户时指定用户附加组id
		-d dir username 	##建立用户时指定用户指定用户家目录
		-M username 		##建立用户时不建立家目录
		-c word username 	##建立用户时指定用户说明
		-s shell username 	##建立用户时指定用户使用的shell
		
userdel -r username 		##用户删除 -r 删除用户的系统配置文件

groupadd groupname 			##组建立
		-g id groupname 	##建立组时指定组id
		
groupdel groupname 			##组删除

在实际操作时,为了更直观的观察到操作的变化,可以使用下面的命令监控用户建立过程(ctrl+c退出监控界面):
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"
在这里插入图片描述

6、用户和用户组的信息管理

usermod -l newname oldname	#更改用户名称
		-u 					#更改用户id
		-g 					#更改主组id
		-G					#更改用户附加组身份
		-aG 				#添加用户附加组身份
		-c 					#更改用户说明
		-d 					#更改家目录指向
		-md 				#更改家目录指向同时更改家目录名称
		-s 					#更改默认shell
		-L 					#冻结账号
		-U 					#解锁

groupmod -g 				##更改用户组id

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

7、用户认证信息管理

用户认证信息存放在/etc/shadow 文件中,文件中每一条记录代表一个用户的认证信息,其格式如下:
用户名称 : 用户密码的加密字符 : 用户密码最后一次被修改时间 : 密码最短有效期 : 密码最长有效期 : 密码过期前警告期 : 账号非活跃期 : 账号到期时间 : 用户自定义(未使用)
1)用户名称
passwd -S lee:查看密码状态
2)用户加密字符
a)更改密码

passwd lee 			##只有root可以执行 
					##利用“echo 123 | passwd --stdin lee”直接设置密码
passwd 				##普通用户改密码

在这里插入图片描述
b)冻结认证

passwd -l lee 		##冻结账号认证
passwd -u lee 		##解锁账号认证

在这里插入图片描述
在这里插入图片描述
c)密码删除
passwd -d lee

d)密码时间参数修改
说明:密码相关时间参数默认计算从1970年1月1日到今天的时间

passwd -e lee 		##修改默认使用时间为0
chage -d 0 lee 		##账号必须改密码才能登陆系统

密码最短有效期
passwd -n 1 lee 	##lee在1天内不能改密码
chage -m 1 lee

密码最长有效期
passwd -x 40 lee 	##40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee

密码过期警告
passwd -w 2 lee 	##账号过期前警告时间
chage -W 1 lee

认证非活跃天数
passwd -i 2 lee 	##账号认证最大时间超过后还能用多久
chage -I 1 lee

账号认证到期时间
chage -E "2020-05-11" 	##到2020-5-11这天账号会被冻结

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

8、用户权力下放

在系统中普通用户时无法执行系统管理命令的时候,如果需要普通用户执行系统管理动作,可以利用root用户来进行授权。普通用户授权方式为“sudo”,其可以使普通用户使用指定的用户身份运行某命令。

授权方法:
visudo :此命令作用是用vi编辑/etc/sudoers并提供语法检测
在/etc/sudoers文件的100行左右(代码规范性)添加username hostname=(newusername) [NOPASSWD:] /command, /command1后即可完成权力下放。

示例:
lee linux.westos.com=(root) /usr/sbin/useradd
lee用户在linux.wesots.com主机上用超级用户root身份执行useradd命令
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/ sbin/userdel
westos用户 在linux.wesots.com 使用超户 免密 执行useradd 和 userdel
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值