文件权限知识
一、文件的权限位说明
如上图方框的部分便是用户的权限位,具体说明如下:
1、前三位(rw-):是用户权限位——user(用户),代表字符为u,数字表示为4;
2、中间三位(r–):是用户组的权限位——groub(用户组),代表字符为g,数字表示为2;
3、后三位(r–):是其他用户权限位——others(其他用户组),代表字符为o,数字表示为1;
–普通文件对应权限的详细说明
r——可读: 表示浏览、读取文件(即读取文件实体block)的权限
对于可读(r)注意:
◆ 1、如果没有可读(r)权限,就无法使用vim编辑文件,但可以强制编辑覆盖文件,也可以使用echo等命令进行重定向或者追加内容到文件当中
◆ 2、删除、移动或者创建文件等的权限受父目录(上一级目录)的权限位控制的(因为文件名没有放在Inode里面,而是在上一级目录的block里面存放着,若修改上一级目录的block(删除文本文件),当然会受到上一级目录的Inode的权限控制),与文件本身的权限无关,因此文件本身的可写(w)权限与文件是否能够被删除和改名无关。
此情节可以参考鄙人写的另外一篇关于文件索引(Inode)的博客:https://blog.csdn.net/Y_YW_W/article/details/106956103
w——可写: 表示具有增加、删除、修改目录内文件的权限
x——可执行: 表示具有进入目录的权限
对于可执行(x)要注意:
◆ 1、首先文件本身能够执行(一般文件为命令或者脚本),否则用户即使有权限也不能执行;
◆ 2、普通用户,用户要同时具备可读(r)、可执行(x)的权限才能执行文件;
◆ 3、root用户只要有可执行(x)的权限就可以执行文件。
–目录对应的权限详细说明
1):可读(r): 表示具有浏览目录下面的文件及子目录的权限;
2):可写(w): 表示具有增加、删除或者修改目录内文件的权限(如果没有可执行(x)权限,也无法删除或者创建目录);
3):可执行(x): 表示具有进入子目录的权限。
索引情节知识介绍可浏览博客:https://blog.csdn.net/Y_YW_W/article/details/106956103
二、特殊权限位
Linux除了有9位的基础权限位,还有3位特殊权限位:
1、suid位(setuid):
标识字符为S(大写),存在于基本权限位的用户权限位的x权限对应的位置,如果用户组限位上有x权限,则suid就用小写的s表示,对应的数字权限为4,完整的权限用八进制4000表示!
2、sgid位(setgid):
同样是用S来标识,存在于基本权限位的用户组权限位的x权限对应的位置,如果用户组权限位上有x权限,则suid就用小写的s表示,对应的数字权限为2,完整的权限用八进制2000表示!
3、sticky(粘滞位):
用字符T来标识,存在于基本权限的其他用户位对应的x权限位上,如果其他用户限位上有x权限,则suid就用小写的t表示,对应的数字权限为1,完整的权限用八进制1000表示!!
被设置了sticky权限的 文件就会显示黑底绿字,最典型的带sticky位权限的目录就是/tmp。
1、suid核心知识:
1)此功能是针对二进制命令或者程序的,不能用在Shell等类似的脚本文件上
2)用户或者属主对应的前三位权限位x上,如果有(s)S则表示具备suid权限
3)suid的作用就是让普通用户可以执行某个设置了suid命令或者程序时,拥有与命令对应属主(一般为root管理员)一样的身份和权限(默认)
4)二进制命令程序需要有可执行x权限配合才能进行相关的操作
5)suid对应的身份和权限在程序命令执行的过程中才有效
6)此功能比较危险,对系统的安全性有一定的威胁
7)在进行安全优化时,系统默认设置了suid权限的命令要取消掉
2、sgid核心知识
1)与suid不同,sgid既可以针对文件,也可以针对目录进行设置
2)sgid是针对用户组权限位的
sgid对于文件的功能:
1、对二进制命令及程序有效
2、需要有可执行权限x的配合
3、执行命令的任意用户可获得该命令在程序执行期间所属的用户组的身份和权限
对于目录的功能:
1、默认情况下所有用户创建文件,默认用户和组都是自身
2、可以让用户在此目录下创建目录和文件具有与此目录相同的用户组设置
3、粘滞位(sbit)知识
主要是在/tmp目录下面的权限,用到的不多,小编在此就不过多说明,了解有这回事就ok!
在学习整理的路上,如有错误,敬请谅解哈!!!