Linux学习之用户、组和权限管理

1、概述:

	1)、用户:是每个使用者用用户来标识
				                       密码是认证手段
	2)、认证:——Authentication——>将使用某种识别技术将用户标识关联起来
	3)、授权:Authorization
	4)、权限执行审查:Account(Audition)
	5)、2、3、4就是3A认证,完成3A认证才能使用某用户的功能
	6)、属主、属组:——>对文件而言
		属主:此文件是该用户的拥有者——>own
		属组:group,需要统一某权限时将用户拉入此组以获得权限
	6)、日志:用户在登录系统后的所有操作会记录在其中
			     日志就是以后用于审计的凭证

2、组:

用户组:用户的容器;将多个用户合并形成一个逻辑概念
例:当要让多个用户对同一文件进行授权时,就可以将多个用户并入同一个组,将组授权后用户即有权利管理此文件

3、用户类别:

	1)、管理用户
	2)、普通用户:
		系统用户
		登录用户
	3)、每个用户都有其对应的用户标识:User  ID(UID是由16位二进制数表示)
				管理员标识(UID)=0
				普通用户表示(UID)=1~65635(一般普通用户只用1~6000)
						系统用户:UID=1~499(cs6) 1~999(cs7)
						登录用户:UID=500~6000(cs6)1000~6000(cs7)
	4)、名称解析:(名称转换)——即UID和username之间的转换
	5)、如何解析:根据名称解析库来进行(解析库用于保存用户名和UID之间的对应关系)
					位于 /etc/passwd中

4、组类别:

1)、管理员组:GID范围同UID
	  普通用户组:
	  	系统组:GID范围同UID
	  	登录组:GID范围同UID
2)、组标识——>Group ID——>GID
3)、组名称解析:同样据解析库进行解析;位于/etc/group中
4)、组类别:用户主组
			用户附加组
5)、组类别:
			私有组:组名与用户名相同,且只包含该用户一个组
			公共组:组内包含多个用户

5、认证信息:

1)、通过比对事先存储的信息,与登录时提供的信息是否一致
	如保存的passwd——>用户密码储存于/etc/shadow 文件夹中
					      组密码储存于/etc/gshadow文件夹中
2)、密码:
	A、使用策略:
		使用随机密码
		最短长度不低于8位
		应使用大写、小写、数字、标点四类字符中的至少三类
		定期更换
	B、加密算法:
		a、对称加密:加密和解密使用同一密钥
			明文:plain text
			密文:cipher text
		b、非对称加密:加密和解密使用的一对密钥
			公钥:public key
			密钥:private key
		c、单向加密:只能加密不能解密——提取数据特征码
			定长输出
			有雪崩效应
	C、常见算法
		MD5:massage digest——定长输出128bits
		sha1:secure hash algorithm(安全的哈希算法)——定长——160bits
		sha224:定长224bits
		sha256
		sha384
		sha512
	在计算之初加入随机数(salt),添加随机数

6、信息库储存格式

1)、用户信息库——/etc/passwd
例:hu:x:1000:1000:hu:/home/hu:/bin/bash
	1  2  3    4   5     6       7
	1、表示用户名
	2、口号——加密符
	3、用户标识——UID
	4、组标识——GID——主组
	5、注释性描述
	6、主目录——家目录
	7、登录的shell——用户默认shell程序
2)、用户密码——/etc/shadow
例:root:x:0:0:root:/root:/bin/bash:  :  
	1   2  3 4  5     6       7     8  9
	1、用户登录名
	2、密码:!!——表示没有设置密码的用户被锁定无法登陆(密码:$6$中间的6此傲视以上算法的第几种)
	3、从1970-01-01到最近一次密码修改经过的时间
	4、经过多少天可以修改密码,0—表示可以立即修改
	5、密码最长使用期限
	6、距离达到最长使用时间,多少时间提示密码需要修改
	7、到达最大期限后多少天还可以登陆。但是那时必须修改密码
	8、密码禁用时间
	9、保留字段
3)、组的信息库——/etc/group
例:hu:x:1000:hu
	1  2  3   4
	1、用户组名
	2、用户组密码
	3、GID
	4、用户列表:每个用户用 , 逗号分隔;本字段也可为空——若该字段为空表示以此组为附加组的用户没有

7、Linux中权限管理

1)、使用ls -l查询后有三部分权限
	rwx  rwx  rwx
	A    B    C
	A、定义user——owner权限
	B、定义group的权限
	C、定义other的权限
2)、进程安全上下文
	进程对文件访问权限的应用模型
		进程属主与文件属主是否相同——若相同则应用属主权
		否则,检查进程的属主是否属于文件属组,若是则应用属组权限
		否则,就只能应用other权限
3)、权限
	A、r——red:读取
	B、w——writ:写
	C、x——excute:执行
4)、文件——普通文件一般默认是没有x执行权限
	A、r——可获取文件的数据(即用tail、cat、less、more所获取的内容)
	B、w——可修改文件数据(vim)
	C、x——可将此文件发起运行为进程(文本内容是二进制或脚本)
5)、目录
	A、r——可使用ls命令获取其下的所有文件列表
	B、w——可修改此目录下的文件列表(创建或删除文件)
	C、x——可cd至此目录中,且可以使用ls -l 获取所有文件详细信息
6)、文件权限模型
	A、mode类——rwxrwxrwx
	B、ownership——从属关系(usergroup)
7)、权限组合机制(符号与二进制之间的转换)
	A、- - -    ——>0 0 0
	B、- - x    ——>0 0 1
	C、- w -    ——>0 1 0
	D、.......
	E、.......
	F、.......
	G、r w x     ——>1 1 1

8、Linux系统上的特殊权限

1、特殊权限:SUID、SGID、STICK
2、安全上下文
	1)、进程以某用户身份运行,进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作。
	2)、权限匹配模型:
		A、首先判断进程的属主是否为被访问的文件属主,若是则应用属主的权限,否则进入到第二步
		B、判断进程的属组是否属于被访问的文件的属组,若是则应用属组权限,否则进入第三步
		C、应用other权限
3、SUID权限仅对二进制可执行文件有效
	A、默认情况下:当一个用户发起一个进程去访问一个文件,那么该进程就是以发起这个进程的用户的身份运行的,同样也是以该用户的权限完成操作的。
	B、SUID的作用:用户运行某程序时,如果此程序文件拥有SUID,那么该进程将以此文件属主的身份运行程序,而非发起者。
	C、管理文件的SUID:
		格式:chmod u+|-s FILE...
		展示位置:属主的执行权限位
		如果属主原有执行权限,则显示为小写s;
		否则,为大写S;
		
4、SGID:权限仅对目录有效
	A、默认情况下,用户在一个目录下创建文件的属组为用户的私有组或者基本组;
	B、SGID的功能:用户在具有SGID目录下创建的文件或目录的属组为该目录的属组;
	C、	管理文件的SGID权限:
		chmod g+|-s FILE...
		展示位置:属组的执行权限位
		如果属组原有执行权限,则显示为小写s;
		否则,为大写S;
5、STICK:权限仅对文件有效
	A、默认情况下,当一个目录属组具有写权限时,如果用户的属组为该目录属组,那么该用户就可以删除在该目录下的所有文件;
	B、Sticky的功用:同组用户或系统上的所有用户在具有Sticky权限的目录下只能删除属主为自身的文件,不能删除同属组的其他文件;
	C、管理文件的SUID权限:
		chmod o+|-t FILE…
		展示位置:其他用户的执行权限位
		如果其他用户原本有执行权限,显示为小写t;
		否则,为大写T;
	注意:系统上/tmp和/var/tmp目录默认均有sticky权限

猜你喜欢

转载自blog.csdn.net/qq_29954175/article/details/84586780