Linux系统中的用户管理

Linux系统中的用户管理

  • 一、用户及用户组存在的意义
  • 二、用户及用户组在系统中的存在方式
  • 三、用户切换
    • 1.用户查看
    • 2.用户切换
  • 四、用户设计到的系统配置文件
  • 五、用户和用户组建立及删除
    • 1.用户建立  useradd
    • 2.用户删除 userdel
    • 3.用户组建立与删除
  • 六、用户及用户组的信息管理
  • 七、用户认证信息管理
  • 八、权力下放

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

用户存在的最大意义就是在于能够使系统资源得到合理的分配,因为系统资源是有限的,如果没有用户这个概念,在系统分配资源时会产生混乱导致系统崩溃(所有人都可以随便使用系统资源)。用户组是一个逻辑容器,方便对用户进行归类和统一授权,分配系统资源时可以减少逐个用户授权的繁琐。合理分配系统资源时需要下面几个资源配合。

身份认证 account
授权 author
认证 auth

上面即为3A机制,3A机制组成系统中最底层的安全架构。

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

用户就是 /etc/passwd文件中的一行字符

westos:x:1000:1000::/home/westos:/bin/bash

就是记录在passwd文件中的westos用户。

用户组存在的方式就是/etc/group 文件中的一行字符,比如"westos :x :1000:"是记录在/etc/group中的一个组。

三、用户切换

1.用户查看

[westos@westos_student73 Desktop]$ whoami		#查看当前用户
[westos@westos_student73 Desktop]$ id 			#查看当前用户id信息
[westos@westos_student73 Desktop]$ id user		#查看用户user信息
[westos@westos_student73 Desktop]$ id -u user  	#查看用户user的用户id,没有user参数时默认当前用户
[westos@westos_student73 Desktop]$ id -g user  	#查看用户组id
[westos@westos_student73 Desktop]$ id -G user  	#查看用户所有组的id
[westos@westos_student73 Desktop]$ id -ng userid  #显示用户组的信息,-n参数不能单独使用,要与"-g""-G""-u"一块用
用户id范围 0-65535( 2 16 2^{16} 216)
0 Linux超级用户id
1-999 Linux系统自用id
1000-65535 用户级ID

2.用户切换

图形界面切换

[westos@westos_student73 Desktop]$ gnome-session-quit 		#图形界面登出当前用户,需要点击确认
[westos@westos_student73 Desktop]$ gnome-session-quit --force 		#强制登出当前用户,无需确认

非图形切换

su - username	#切换到username环境,“-”与usename之间必须有空格
-				#切换用户环境
username		#如果	root ---> commonuser	超级用户切换到任何系统中存在的普通用户不需要密码
				#root ---> commonuser	需要密码
				#commonuser	---> commonuser	需要密码

注意:在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
在一个shell中反复执行su命令会导致环境错乱


Linux系统中的用户管理_第1张图片Linux系统中的用户管理_第2张图片

四、用户设计到的系统配置文件

1)  /etc/passwd  用户身份信息文件

westos:x:1000:1000::/home/westos:/bin/bash
#用户名称:用户密码:用户id:用户主祖id:用户说明:用户家目录:用户默认shell

Linux系统中的用户管理_第3张图片
2)  /etc/group  组身份信息文件

westos:x:1000:		#组名称:组密码:组id:组的附加成员

Linux系统中的用户管理_第4张图片
3)  /etc/skel/.*  用户环境配置文件模板
Linux系统中的用户管理_第5张图片

4) /etc/shadow   用户认证信息

westos:$6$xaN1UuB00Sq44/rX$Hue37.8W2jRkBl/.GFBl5UbaBse2UBLI4NcAFwELGDJdnmLV1fkqV9NIC8XEI2.dbYDQ7L7AqknQvzdRTtIU4/:18802:0:99999:7:::

用户名称:用户密码的加密字符:用户密码最后一次被修改的时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)
Linux系统中的用户管理_第6张图片
用户认证信息文件普通用户无法查看,要用超级用户
5) /home/username #用户家目录
Linux系统中的用户管理_第7张图片

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

[westos@westos_student73 Desktop]$ watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo ========;ls -l /home/"
#监控用户建立的命令

Linux系统中的用户管理_第8张图片

1.用户建立  useradd

[root@westos_student73 ~]# useradd		username	#用户建立,
[root@westos_student73 ~]# #主组(初始组)直接建立,初始组名字和id默认和用户一致,家目录直接建立,默认在/home/username

注意:建立用户需要在超级用户下,普通用户无权限

[westos@westos_student73 Desktop]$ -u id	username	#建立指定用户id的用户,uid	2**16=0-65535
uid范围 说明
0 表示超级用户
1-200 系统预留Id
201-900 系统用户
1000-60000 用户级用户

以上ID设定规则都被记录在/etc/login.defs

-g id	username	#主组id,主组必须先存在或先建立,一个组不一定只为一个用户的主组,
					#当一个组只为一个用户的主组时,主组为用户拥有,用户删除,其所属主组也随之删除
					
-G id	username	#附加组id,用户删除时,附加组不被删除

-d dir	username	#指定用户家目录,会在/home下建立一个目录

-M	username		#建立用户时不建立家目录

-c word username	#指定用户说明

-s shel username	#指定用shell

cat /etc/shells 查看shell;/sbin/nologin 为不可交互的shell

Linux系统中的用户管理_第9张图片
Linux系统中的用户管理_第10张图片
Linux系统中的用户管理_第11张图片

2.用户删除 userdel

[root@westos_student73 ~]#userdel -r 	username	##用户删除 -r 删除用户的系统配置文件,包括用户的家目录
[root@westos_student73 ~]#userdel username #删除用户,但用户的家目录仍然存在

3.用户组建立与删除

groupadd	groupname		#组的建立
	-g id 	groupname		#指定组的id

groupdel	groupname		#组删除,只能指定组名,且不能删除作为用户的主组

用户和用户组删除时可以指定用户及用户组名,也可以指定用户id或组id

六、用户及用户组的信息管理

usemod  修改用户信息

usermod
	-l		#更改用户名称
	-u		#更改用户id
	-g		#更改主组id
	-G		#更改用户附加组身份,会覆盖原来附加组信息
	-aG		#添加用户附加组信息,不会覆盖原来附加组信息

Linux系统中的用户管理_第12张图片
Linux系统中的用户管理_第13张图片
Linux系统中的用户管理_第14张图片

usermod
	-c		#更改用户说明
	-d		#更改家目录指向,但原用户家目录不会改变
	-md		#更改家目录指向,同时更改家目录名称-c		#更改用户说明
	-d		#更改家目录指向,但原用户家目录不会改变
	-md		#更改家目录指向,同时更改家目录名称
	-s		#更改默认shell
	-L		#冻结账户,与passwd相比冻结程度不一样
	-U		#解锁

Linux系统中的用户管理_第15张图片

Linux系统中的用户管理_第16张图片
Linux系统中的用户管理_第17张图片

groupmod -g		#更改用户组id,当用户的主组id改变时,用户信息中的初始组id也会随之修改

Linux系统中的用户管理_第18张图片
Linux系统中的用户管理_第19张图片

七、用户认证信息管理

/etc/shadow  文件内容说明

westos用户认证信息及对应说明如下:

westos:$6$xaN1UuB00Sq44/rX$Hue37.8W2jRkBl/.GFBl5UbaBse2UBLI4NcAFwELGDJdnmLV1fkqV9NIC8XEI2.dbYDQ7L7AqknQvzdRTtIU4/:18802:0:99999:7:::

用户名称:用户密码的加密字符:用户密码最后一次被修改的时间:密码最短有效期:密码最长有效期:密码过期前警告期:
账号非活跃期:账号到期时间:用户自定义(未使用)

1)用户名称

passwd -S lee		#查看用户密码状态

Linux系统中的用户管理_第20张图片
密码位置有"!“表示账号被冻结,”!!“表示时passwd命令冻结的,”!“是usermod命令冻结,冻结程度不同,另外,仅有”!!"说明账户被冻结,且未给账户设定登陆密码
2)用户加密字符
更改密码

[root@westos_student73 ~]# passwd lee		#只有root用户可以修改其他用户密码
#只有root用户可以执行 "echo 123 | passwd --stdin lee"

普通用户只能修改自己的密码执行:passwd

下为普通用户修改密码流程
passwd            普通用户修改密码,只能修改自己的密码
Changing password for user lee
Current password:       输入原始密码
New password:         输入新密码(8位以上无序数字+无序字母组合)
Retype new password:     重新输入
passwd: all authentication tokens updated successfully
Linux系统中的用户管理_第21张图片
3)冻结认证

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

Linux系统中的用户管理_第22张图片Linux系统中的用户管理_第23张图片

和"usermod -L lee"都能执行冻结,但是冻结程度不同。
4)密码删除

passwd -d lee		#删除lee用户的密码,只能root用户执行,密码位置为空

Linux系统中的用户管理_第24张图片
5)密码使用天数
从1970-1-1算到今天的时间

passwd -e lee		##修改默认使用时间为0
chage -d  0 lee		##两个命令效果一样,切记命令是chage,账户必须修改密码才能登陆系统

Linux系统中的用户管理_第25张图片
Linux系统中的用户管理_第26张图片
6)密码最短有效期
#密码最短有效期

paswd -n l lee		#lee在一天内不能改密码
chage -m 1 lee

Linux系统中的用户管理_第27张图片

7)密码最长有效期

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

Linux系统中的用户管理_第28张图片
8)认证非活跃天数

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

9)认证到期时间

chage -E "2020-05-11"	#到2020-5-11这天账号会被冻结

10)未启用功能

八、权力下放

在系统中普通用户是无法执行系统管理命令的

如果需要普通用户执行系统管理动作,那么需要root用户来进行授权

普通用户授权方式 “sudo”

作用:
可以使用普通用户使用指定的用户身份运行命令,切记运行命令时,先加上sudo,相当于连接文件etc/sudoers

授权方法

授权方法:
visudo		#此命令作用时编辑/etc/sudoers并提供语法检测
			#直接vim进入时,不提供语法检测
			#visuo异常退出时,比如"ctr + z"挂入后台时,按fg重新进入

文件修改位置

在文件100行左右(:100#转到文件100行) 代码规范性

username	hostname=(newusername)	[NOPASSWD:] /command, /command
											(切记此处l两个命令之间有空格)

相关辅助命令
hostname    查看当前主机的名字

which useradd 查找useradd命令的位置,可以查找相关系统管理命令的位置

权力下放代码解释

westos用户	在linux.westos.com主机上	使用超级用户	免密		执行useradd和userdel 命令
westos		linux.westos.com   =	(root)	NOPASSWD: /usr/sbin/useradd, /usr/sbin/useradel

测试:

su - lee
sudo useradd linux		#在lee中第一次使用sudo命令需要输入lee密码
exit	#退出lee
su - westos
sudo userdel -r linux	#westos可以免密执行userdel命令

Linux系统中的用户管理_第29张图片
Linux系统中的用户管理_第30张图片

Linux系统中的用户管理_第31张图片
Linux系统中的用户管理_第32张图片
Linux系统中的用户管理_第33张图片

你可能感兴趣的:(Linux,linux,运维)