Linux基础权限是9个字符。分三组,
第一组前三个字符:代表用户的权限位,也叫属主。(user)用户
第二组中间三个字符:代表用户组权限位,也叫属组。(group) 用户组
第三组后三个字符:代表其他用户权限位。(others) 其他用户
同一组的三个字符权限也是有位置的:
r--:第一个字符代表读的权限位,r=4
-w-:第二个字符代表写的权限位。w=2
--x:第三个字符代表执行的权限位。x=1
文件对应的权限说明:
r: 读取实体block的权限(文件内容)
w:新增、修改、删除文件内容的权限
删除文件和自身的w权限无关,而是上一级目录的权限控制的
x:表示具有执行文件的权限。
对于可执行x,需要注意的两点:
1、首先文件本身要能够执行,
2、普通用户要想执行还需有r权限
Groupadd:创建用户组
usermod -g incahome oldboy:让oldboy进入incahome用户组
useradd oldgirl -g incahome:创建oldgirl并加入incahome用户组
-bash: test.sh: Permission denied:没有权限
目录对应的权限说明:
r:浏览目录下边文件及子目录名的权限
w:表示具有增加、删除、修改目录内文件的权限,但是如果没有可执行x配合,
即使有w权限,也无法删除或创建目录。
x:表示具有进入目录的权限
Linux 权限有两种表现形式:
1、数字表示法
r=4
w=2
x=1
-=0
实际的权限表示就是将每三位相加即可
rwxr-xr-x: rwx=7,r-x=5,r-x=5 所以最后结果就是755
2、字符表示法
u=属主
g=属组
o=其他用户
a=所有
修改文件属性的用户和组
Chown 用户.用户组 文件 这里的点可以用:替换。
Chown 用户 文件
Chown .用户组 文件
安全权限的临界点:
文件不想被修改:644
目录不想被修改(删除移动创建)被执行(进入):755
解决方案:
1、先备份、
2、找到被修改的文件、
3、批量删除被修改的内容、
4、找到文件被篡改的来源并优化调整
5、写过程报告
控制默认权限的东西:umask
创建文件默认最大的权限为666,
当umask中存在基数位的时候,在计算完毕,基数位加1.
基于文件:默认权限规则
从666计算
umask都为偶数 默认权限用减法
umask有奇数 默认权限用减法 然后奇数位加1.
基于目录:默认权限规则
从777计算
默认权限用减法
Linux系统特殊权限位知识
除了9位基本权限还有3位特殊权限
1、suid位(s标识)
存在于基本权限位的用户权限位,存在于基本权限的用户权限位的x权限对应的位置
如果用户权限为对应的x权限位上权限,则用小写的s标识,
suid对应的数字是4,完整权限用八进制数4000表示。
2、sgid位(s标识)
存在于基本权限位的用户组权限位的x权限对应的位置,
如果用户组权限位对应的x权限位上有x权限,则用小写的s表示
sgid对应的数字是2,完整权限用八进制数2000表示。
3、sticky(粘滞位)(T表示)
存在于基本权限的其他用户位对应的x位权限上,
如果其他用户位对的x权限位上有x权限,则用小写的t表示,
对应的权限数字是1,完整的权限用八进制数1000表示。
修改方法:4、2、1放在基础权限数字的前边。