四、Linux下的用户管理

目标

  1. 用户及用户组存在的意义
  2. 用户在系统中的存储方式
  3. 深入分析用户涉及到的配置文件及内容
  4. 用户信息的查看(id命令)
  5. 用户身份的切换方式以及shell的特性
  6. 用户及用户组的建立及删除
  7. 用户及用户组的信息管理
  8. 用户认证文件的内容分析
  9. 用户认证管理
  10. 用户权力的下放

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

用户是操作者在系统中的身份标识,组是逻辑概念,是用户的集合。用户的存在是为了限制权限,组的存在是为了归类用户,便于管理。Linux中用户大致分为两种,超级用户(可以管理系统中所有的资源)和普通用户(只能管理自己所拥有的资源)

2.用户在系统中的存储方式

用户在系统中就是文件中的字符串,每个字符串映射了该用户所用到的系统资源

3. 深入分析用户涉及到的配置文件及内容

1、/etc/passwd
#用户信息库,记录用户和用户id的对应关系,如图一,在命令框输入 vim /etc/passwd即可编辑和查看,可以看到图中一共有七列,依次分别表示:

用户名 密码 id 初始组id 用户说明 用户家目录 用户使用的shell

  • 用户名:用户的名字
  • 用户密码:显示的是x,因为为了安全,这一位的功能被转移到其他的文件中(/etc/shadow),普通用户是不能查看的,只有超级用户才可以查看
  • 用户id:范围0~65535,超级用户的id为0
  • 初始组id:初始组,也叫主族,一个用户在建立的时候会默认建立它的主组,是保持不变的,超级用户组的id为0
  • 用户说明:登陆时的名字处显示的就是用户的说明
  • 用户的家目录:用户登陆系统以后默认所在系统的位置,可用pwd命令查看
  • 用户使用的shell:用户登陆系统以后和系统交互所使用的一个软件

图一
在这里插入图片描述
2、/etc/group
#组信息库,记录组的名称和组的id的对应关系,可用vim /etc/group查看
3、/home/用户同名目录
#默认用户家目录
4、/etc/skel/所有文件
#用户环境配置文件模板
5、/etc/shadow
#用户认证信息,可用vim /etc/shadow查看
6、/etc/gshadow
#组认证信息,可用vim /etc/gshadow查看

4. 用户信息的查看


id 用户名 	
#查看指定用户的id信息
  输入该命令,屏幕会显示:
	uid 		用户的id,即主id
	gid 		组id
	groups		所有id

  id命令的常用参数
	id -u student		#查看student用户的uid
	id -g student  		#查看student用户的组id
	id -G student		#查看student用户所在的所有组的id
	id -Gn student		#将student用户的id组解释然后显示,只显示名字而不是id数字
 whoami 				#查看用户时是谁
 getent passwd 用户名	#查看该用户的相关信息
 

执行过程如图二:
在这里插入图片描述

5. 用户身份的切换方式及环境变量

注销用户
	1、在图形中用鼠标注销
	2、gnome-session-quit 			#注销当前用户,有提示
 	  gnome-session-quit --force	#强制注销当前用户,无提示
切换用户
	su和su -
	su				#只切换当前用户身份,不切换用户环境,所以在切换用户时,“-”不能少
	su -			#切换用户身份及用户环境,前提是用户必须存在,使用完及时退出,不然有些命令执行时会有错
	exit			#退出当前用户
	例:su - student 	#切换用户身份为student用户

图三

在这里插入图片描述
注意:此处可以用whoami命令查看是哪个用户,每次su以及su -切换到其他用户操作之后必须退出,然后再次切换到其他用户执行时,高级用户切换到低级用户不需要输入密码,低级用户切换到高级用户或平级用户需要输入密码

图四
在这里插入图片描述

6. 用户及用户组的建立及删除

这个实验之前,先重新打开一个shell用来监控建立的过程,在这个shell中输入命令

watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home/'

#watch表示监控,n表示频率,1表示一秒,watch -n 1 表示每秒执行一次该命令,一次输入两条命令用“;”隔开,监控页面如图五所示

图五
在这里插入图片描述
实验过程如下:

1、groupadd westos	#建立一个用户组

图六
在这里插入图片描述

2、groupdel westos	#删除这个用户组
3、groupadd -g 6666 westos	#建立一个用户组,并且设置组id为6666

图七
在这里插入图片描述

4、groupdel westos	#删除这个用户组

useradd的常用参数:

-u 指定用户的 uid
-g 指定用户的 gid
-G 指定用户的附加组
-c 指定用户的说明
-d 指定用户的家目录 , 默认为 /home/username
-s 指定用户的默认shell
-M 在建立用户的时候不建立用户的家目录
5、useradd westos	#添加一个用户westos

图八
在这里插入图片描述

6、useradd -u 8888 westos	#添加一个用户westos,并指定它的uid为8888

#如果想指定用户的uid,需要在建立的时候就指定,如果用户已经建立好了,再指定用户的uid,系统会告诉你用户已经建立,如果在建立用户信息时指定了用户的uid,则系统会默认指定用户的组id和uid一样

7、userdel -r westos		#删除用户

#删除用户时一定要加 -r ,这表示删除用户的信息以及用户的环境配置,如果不加 -r 只能删除用户的信息,还需要用命令 rm -fr /home/westos/ 删除

8、 useradd -g 1008 westos		#建立用户并指定它的初始组id为1008

#注意:在指定用户的初始组id或附加组id时,这个组的身份必须存在,不然会指定失败,可以在指定之前用命令 groupadd -g 1008 westos 先建立组,然后再指定用户的组id

9、useradd -c “westos user” westos	#指定用户说明为westos user 
10、useradd -d /mnt/westos westos	#指定用户的家目录为/mnt/westos
11、useradd -s  /sbin/nologin	#指定用户的shell为/sbin/nologin,这样的shell的用户是不能登陆的,也不能用su - 命令切换的

图九
在这里插入图片描述

7. 用户及用户组的信息管理

useradd是在建立用户时修改用户的信息,该方式显然不合适,那有没有什么命令能直接修改用户的信息呢???sure,那就是usermod命令啦
usermod常用参数:

-l 修改用户名称
-u 修改用户的 uid
-g 修改用户的 gid
-G 更改用户的附加组,会把原始的附加组清掉
-aG 只是添加用户的附加组,不会把用户原始的附加组清掉
-c 修改用户的说明
-d 只修改用户家目录的指向,而真正的家目录的目录不会变
-md 修改用户家目录的指向和真正的家目录 , 默认为 /home/username
-s 修改用户的 shell 类型

注意:groupmod -g 更改组的id

图十:部分代码
在这里插入图片描述

8. 用户认证文件的内容分析

/etc/shadow 用户认证信息文件,通俗理解用户认证信息文件就是用户yao向系统证明我是这个账号的持有者用 vim /etc/shadow 查看文件,内容如图十一:
在这里插入图片描述
从图中可以看到,每一行都有九列,最后一列为空,每一列分别代表以下意思:

1.用户名称
2.用户密码
3.密码已经使用时间,从1970年至最后一次被修改的天数
4.密码最短有效期,假设为3,则用户三天内不能修改密码
5.密码最长有效期,在这个时间内必须要改一次密码
6.密码到期前警告,若为7,则在密码到期前7天会警告
7.密码非活跃天数,即密码到期后在一个活动周期内依然可以改密码
8.密码到期日

##若记不住这些命令,则可以用命令 man 5 shadow去查看

9. 用户认证信息的管理

passwd                      chage                          
-n	最短有效期				-m 天数
-x	最长有效期				-M 天数
-w	密码到期前警告			-W
-i	密码非活跃天数          	-I
-S	查看密码状态
-l	锁定用户
-u  解锁
-f  强制退出
-e  将使用时间清零

注意:对于密码到期时间passwd命令没有权限,只有使用chage

10. 用户权利的下放

sudo 能把某些超级权限针对性的下放 , 并且不需要普通用户知道 root 密码 , 所以 sudo 相对于权限无限制性的 su 来说 , 还是比较安全的,sudo 执行命令的流程是当前用户切换到 root,然后以 root 身份执行命令 , 执行完成后 , 直接退回到当前用户 ; 而这些的前提是要通过sudo 的配置文件 /etc/sudoers 来进行授权。
使用命令 vim /etc/sudoers 直接对文件进行编辑,但是该编辑方法有一个缺点就是不提供语法检测,所以我们一般用 visudo 命令直接对文件进行编辑,该方法如果编辑时有语法错误会提示,过程如下:

1、打开一个监视窗口

watch -n 1 "tail -n 5 /etc/passwd /etc/group;ls -l /home/"

2、以root用户身份用命令 sudo 对文件进行编辑

visudo	#用来编辑/etc/sudoers文件的一个命令,与vim无关,该命令提供语法的检测

3、在文件中大概100行处编辑,命令为:

用户名 主机名=(新用户身份)命令
例1:student workstation.lab.example.com=(root) /usr/sbin/useradd	
#student用户可以在workstation.lab.example.com主机上以root身份去添加用户,但第一次执行时需要输入密码
例2、student workstation.lab.example.com=(root) NOPASSWD: /usr/sbin/useradd	
#student用户可以在workstation.lab.example.com主机上以root身份去添加用户,并且不需要输入密码
例3、student workstation.lab.example.com=(root) NOPASSWD: /usr/sbin/useradd,/user/sbin/userdel
#student用户可以在workstation.lab.example.com主机上以root身份去添加和删除用户,并且不需要输入密码

在这里插入图片描述
4、使用命令 su - student 切换到student用户,然后执行命令 sudo useradd test1即可添加用户test1

发布了6 篇原创文章 · 获赞 1 · 访问量 386

猜你喜欢

转载自blog.csdn.net/weixin_46138661/article/details/103889641