Loading

七、 权限管理

七、 权限管理

ACL权限控制访问

	1)dumpe2fs -h /dev/sda3		查看分区是否支持ACl
	2)mount -o remount,acl			临时设置acl权限
		永久设置 	/etc/fstab    ----> mount -o remount /	(设完重挂一次生效)
	3)getfacl	参数	查看文件的acl权限
	4)setfacl [] 参数	设置ACL权限
				-m 	增加acl权限
				-x	删除授权用户
				-b	清空acl权限(mask值)
				-R	对目录及其内所有文件都设置权限(递归设置)
		setfacl -m u:b1:rwx 1.txt  (设置b1用户对1.txt的rwx权限)
		setfacl -m m:rwx 	(设置mask值为rwx权限(最大限制权限,防止acl权限过大))
		setfacl -R -m u:b1:rwx 1.txt 递归设置权限
	让文件夹内所创建的文件继承文件夹权限
		用法一:setfacl -d -m u:zhangsan:r /abc	
		用法二:setfacl -m d:u:zhangsan:r /abc
	当一个文件有ACL权限时,其所属组位置上表现的权限,不再是所属组的权限,而是ACL的mask的权限。

sudo授权

用户必须对 /etc/passwd 文件有 r 权限
		授权:将授权的信息记录到配置文件中
			visudo	专门用来修改授权配置文件的
			-r--r----- /etc/sudoers		授权配置文件(被授权者有哪些权限)
			root 		ALL=(ALL)								ALL
		被授权者	可管理主机=(被授权者所借用的身份)		被授权者可执行的命令
zhangsan	ALL=(root)		/sbin/shutdown -r now
us1	ALL=(root)		/usr/bin/passwd ! /usr/bin/passwd root ! /usr/bin/passwd ""
		验证授权是否成功(普通用户身份):
			登录zhangsan
			# sudo shutdown -r now	
		执行命令,会有以下3个过程
			1. 查看/etc/sudoers配置文件,是否有对zhangsan的授权
			2. 还需要验证普通用户的身份(要求普通用户输入密码)
			3. 若有授权、普通用户身份验证成功:执行授权命令(借root身份)
		注意:
			1.	授权时,不得仅授权某一命令,要授权具体的(命令 -选项 操作对象)
			2.	授权时,仅授权普通用户所需要的权限,不要额外授权(用取反缩小授权范围)
		passwd 命令在执行时,会检查命令的执行者UID
			1.	若UID是0,则passwd命令后可以跟任何字符串
			2.	若UID不为0,则passwd命令后不可以跟任何字符串
		给组授权:
			%zhangsan ALL=(ALL)	ALL
		授权别名:(简化授权记录、缩短授权记录的长度)
		给好几个命令设置一个别名NETWORKING
		Cmnd_Alias NETWORKING = /usr/bin/passwd ! /usr/bin/passwd root ! /usr/bin/passwd ""
		zhangsan	ALL=(root)	NETWORKING

文件的特殊权限

SUID(SetUID)
	定义:在命令的所有者位置具有s权限的,叫做具有SUID权限
	功能:
	⑴ 一个普通用户在执行具有SUID权限的命令时,该命令的执行者会临时变更为命令的所有者
	注意:
		1.	普通用户需要对所执行的命令有x权限
		2.	SUID只设置在可执行文件(命令)和脚本上
	如:密码修改的过程:用户使用passwd命令,修改位于/etc/shadow中的字符串
		-rwsr-xr-x 	root	root	/usr/bin/passwd 	
		----------	root	root	/etc/shadow
		EUID:应用程序执行时所持有的用户身份
		root						/usr/bin/passwd						/etc/shadow	
		zhangsan					/usr/bin/passwd						/etc/shadow
SGID(SetGID)
定义:在命令的所属组位置具有s权限的,叫做具有SGID权限
功能
⑴ 针对目录
一个普通用户在一个具有SGID权限的目录下创建文件时,该用户的有效组临时变更为了该目录的所属组。
针对目录的SGID:
	# mkdir /test
	# chmod o+w /test
	# useradd zhangsan + lisi
	$ cd /test 
	$ touch a.txt 
	# chmod g+s /test
	$ cd /test 
	$ touch b.txt
	对比a.txt 和 b.txt 文件的归属,得到结果。
⑵ 针对可执行文件:
一个普通用户在执行具有SGID权限的命令时,则会临时加入命令文件的所属组内,以组成员的身份执行操作
如:一个普通用户在执行具有SGID权限的命令时,该用户会临时加入到slocate组内,以组成员的身份查看mlocate.db文件
-rwx--s--x	root	slocate		/usr/bin/locate	
-rw-r-----	root	slocate		/var/lib/mlocate/mlocate.db
root					/usr/bin/locate				/var/lib/mlocate/mlocate.db
zhangsan				/usr/bin/locate				/var/lib/mlocate/mlocate.db
SBIT(STICKY BIT)
	黏着位:在具有SBIT权限的目录下,普通用户只能删除自己创建的文件(root除外),如/tmp目录
文件系统属性
chattr [+-] [选项] 文件或目录
		i:对文件,不允许对文件进行任何操作;
			对目录,只能修改目录下文件的数据,不可新建、删除,改名。
		a:对文件,只能在文件中增加数据,但是不能删除也不能修改数据;
			对目录,只能在目录中新建和修改文件,不允许删除、改名。
		e:Linux 中绝大多数的文件都默认拥有 e 属性。表示该文件是使用 ext 文件系统进行存储的,
	且不能使用"chattr -e"命令取消 e 属性
lsattr  选项 文件名
		-a  显示所有文件和目录(显示隐藏文件)
		-d  若目标是目录,仅列出目录本身属性
SUID&SGID 和 sudo授权的对比:
	SUID&SGID : 针对的对象是所有能够使用他们的用户
	sudo授权:授权更具体,更严谨
如何设置特殊权限:
	chmod ugo +- s	file
	chmod 4755	file	suid(可执行文件)
	chmod 2755	file	sgid(可执行文件&目录)
	chmod 1755	file	sbit(目录)
umask 0022 0002	
	第一个位置的 0 代表该数值是一个八进制的数值
	SUID :  4755
	取消 : 00755
权限管理章节的重点:
	1.	ACL & sudo
	2.	chattr & lsattr
	3.	s系列(SUID&SGID&SBIT)	了解
posted @ 2019-07-11 13:39  Outsrkem  阅读(245)  评论(0编辑  收藏  举报