Linux-文件权限

1.UGO权限

==文件类型
	d 普通文件
	l 软连接文件
	c 符设备文件
	b 块设备文件
	p 管道文件
	s socket文件
UGO权限
	权限结构为:UGO    U:表示用户权限 G:表示组权限  O:Other(其他权限)
	特点:只能一个用户,一个组和其他人
	说明:
		r:read可读
		w:write可写
		x:executive 可执行
		二进制:有权限用1表示,没权限用0表示。
		rwx--r--w = 111 001 001
		十进制:
		rwx=4+2+1     r=4    w=2   x=1
	三个为一组:
		rwx--r--w:= 742
		rwx:表示用户权限     --r:表示组权限    --w:自定义权限
==默认权限,umsk默认为0022  普通用户umask默认为0002
	ROOT用户
		用一种umask的掩码似的东西限定新创建文件的权限,默认umask为0022(普通用户的umask通常为0002,root用户是默认的0022)
		我们创建一个文件:它的权限就是666-022=644
		我们创建一个目录:它的权限就是777-022=755
	普通用户:
		创建一个文件:它的权限就是666-002=664
		创建一个目录:它的权限就是777-002=775
	暂时性更改umask:
		例子 :umask=027 umask文件保存与/etc/bashrc中 想要永久生效可以更改/etc/bashrc/umask文件 
			   想要只对自己生效可以更改家目录下的.bash文件 添加一行umask=nnn即可
==权限操作命令
	chmod +x file 默认为添加属主的执行权限
	chmod 755 file rwxr-xr-x   权限为755
	chmod u+x file rwxr--r-- 属组添加执行权限
	chmod g=rwx file  属组权限修改
	chmod g=674 file rw-rwxr-- 属组改为rwx权限
	chmod o-r file rw-r----- 减去其它用户的可读权限
	
	chown username.group filename  修改属主、属组
	chown username filename  修改属主
    chown .groupname filename 修改属组
	
	chgrp groupname file 修改属组
	chgrp -R groupname filename 修改属组

2.ACL权限

ACL权限
	ACL(Access Control List)是一种高级权限机制,允许我们对一个文件或文件夹进行灵活的,复杂的权限设置。
	ACL允许针对不同用户,不同组对一个目标文件/文件夹进行权限设置不受UGO模型限制
==操作命令
	getfacl filname 获取一个文件/文件夹的ACL设置
	setfacl -m u:root:rwx filename 针对一个用户对文件进行ACL设置
	setfacl -m g:root:rw filname  针对一个组对文件进行ACL设置
	setfacl -x u:root filname 删除一个ACL设置
	setfacl -b filename 删除所有acl权限
	getfacl file1 |setfacl --set-file=-file2  复制file1的acl权限给file2
	
==ACL特性
	mask权限
		用于 临时降低 用户或组( 除属主和其他人 )的权限
		mask 决定了他们的最高权限
		建议:为了方便管理文件权限,其他人的权限置为空
		setfacl -m o::- filename //去掉其他用户的所欲权限。chmod 0=- filname
	
	default:继承(默认)
		
		设置用户dong能够对/test以及以后在/test下新建的文件有读写执行的权限。
		setfacl -R -m u:dong:rwx /test
		setfacl -m d:u:dong:rwx /test

3.文件的特殊权限

文件的特殊权限
安全上下文:
	任何时刻用户靠进程操作计算机,进程能否访问一个文件取决于发起这个进程的用户对该文件所拥有的权限:若发起进程的用户与文件属主匹配,以该用户权限访问;否则,若发起进程的组与该文件属组匹配,以该组的权限进行访问;否则以发起者权限访问。
开始介绍3个特殊权限:
	suid sgid sticky suid:通常用于可执行文件 任何用户操作此权限文件使用该文件属主权限 sgid:通常用于目录 任何用户操作此权限文件夹使用该文件夹属组权限 sticky:通常用于公共类型的目录 对于此权限目录,任何用户可在里面创建文件,但是只允许更改或删除属于自己的文件
	举例说明下他们的作用 suid:/etc/passwd文件拥有suid权限。普通用户更改密码 时,要运行passwd文件,passwd对/etc/shadow(存放密码的文件)文件进行操作更改密码。要知道普通用户对shadow文件没有任何 权限,所以普通用户执行的passwd程序不能更改shadow。这时候就用到了suid权限,这个权限使用户运行的passwd命令使用的是 passwd文件属主root的权限,拥有root权限的passwd命令有权限更改/etc/shadow文件,于是普通用户可以成功更改自己密码。
	sticky:/tmp /var/tmp 目录对于任何人有任何权限,因为它是存放临时文件的地方,这种公共目录下,一个用户文件有被其他用户随意破坏的危险,sticky权限正好避免了这一危险
更改特殊权限方法:
	chmod u+s filename 属主添加suid权限
	chmod g+s filename 属组添加sgid权限
	chmod o+t filename 目录添加scitky权限
suid sgid sticky 同样可用 4 2 1 表示 例:
	chmod 4644 filename 表示 u+s rwS 表示权限有r w s
	rws 表示的权限为 r w x s
	t权限同理

  

posted @ 2020-02-11 20:57  东风伴侣  阅读(114)  评论(0编辑  收藏  举报