一、Linux基础权限:9个字符
1、9个字符分为三组
前三个字符表示用户的权限位(属主)user
中三个字符表示用户组的权限位(用户组)group
后三个字符表示其他用户权限位(其他用户)others
2、同一组的三个字符权限是有固定位置的
第一个字符的位置是读的权限位
第二个字符的位置是写的权限位
第三个字符的位置是执行的权限位
二、Linux系统中权限是对文件和目录来说的
1、可读r:表示具有读取、浏览文件内容(即读取文件实体block)的权限。
对于可读,需要说明两点:
1)如果没有可读的配合,那么使用vim编辑文件时会提示无法编辑(但可强制编辑),可以使用echo等命令进行重定向或追加。
2)删除文件或创建目录的权限是受父目录(上一级目录)的权限控制的。
2、可写w:表示具有新增、修改、删除文件内容的权限。
3、可执行x:表示具有执行文件的权限。
对于可执行x,需要注意以下3点:
1)首先对文件的本身要能够执行(命令或脚本)。
2)如果是普通用户,同时还需要具备可读的权限才能执行文件。
3)而root用户只要有可执行x的权限就能执行文件。
4、【文件】权限说明
测试准备:
incahome(家、组)
oldboy 家庭男主人,用来代表用户(User)角色,是文件的所有者
oldgirl 女主人(和所有者oldboy属于相同组,oldboy的家人)用来代表用户组incahome的角色
test 其他人 其他(others)人,用来代表其他用户角色
5、【目录】对应读写执行的权限说明
Linux系统中目录的权限和文件有一些细微区别,下面是目录对应的权限重要知识:
1)可读r:表示具有浏览目录下面文件及子目录名的权限
2)可写w:表示具有增加、删除和修改目录内文件的权限
3)可执行x:表示具有进入目录的权限
三、权限的两种表现形式
1、数字表示法
r : 4
w :2
x: 1
-: 0
实际的权限表示就是3位相加即可
2、字符表示法
1)用户或用户组的定义
u :user 代表属主用户
g:group 代表属组
o:other 代表其他用户
a(all)或者不写:同时代表ugo属主、属组和其他用户,也就是上面三个用户/组的所有
2)权限定义字母,和前文一致
r :可读 4
w:可写 2
x:可执行 1
-:代表没有权限 0
3)权限增减字符详细定义
+:添加权限
-:取消权限
=:取消其他所有权限,然后赋予给定的权限。
命令:chmod 修改权限
-R 递归修改
修改文件属性的用户和组:
chown 用户 .用户组 文件 这里的.可以换成:
chown 用户 文件
chown .用户组 文件====chgrp 用户组 文件
四、企业环境选文件和目录的安全核心知识
安全临界点
1、文件不想被修改: 644
默认创建文件权限:644
2、目录不想被修改(删除移动创建)被执行(进入):755
默认创建目录权限:755
3、企业案例:网站文件被恶意修改,打开网站后有弹窗广告
原因:权限设定不到位。
解决档案:
1)备份
2)找到被修改文件
3)批量删除
4)找到文件被串改来源,并进行优化调整
5)写总结,故障报告
4、控制默认权限:umask
创建文件的默认最大权限位666,共创建的文件没有可执行权限x位。
1)基于文件:
从666计算
umask都为偶数,默认权限用减法
umask有奇数,默认权限用减法,然后奇数位加1
2)基于目录:默认权限规则
从777计算,默认权限用减法
五、Linux系统特殊权限位知识
1、三位特殊权限位
suid:(setuid)位通过s字符标识。
用户权限位的x权限对应的位置。
有x用s,没有用S。
sgid:(setgid)位同样是通过s字符来标识的。
用户组权限的x权限对应的位置。
有x用s,没有用S。
sticky(粘滞位)位通过字符T标识。
其他用户权限的x权限对应的位置。
有x用t,没有用T。
2、工作中用法
suid作用:
简单的说,让普通用户拥有root管理员一样的身份和权限(默认情况)。