回顾重点:
【文件】权限详细说明:*****
【目录】权限详细说明:*****
字符和数字(8进制)权限知识*****
chmod chown chgrp命令使用。*****
企业真实案例:网站文件被恶意修改了*****
umask默认权限控制*
特殊权限,suid** sgid sticky*
重点suid
1.linux基础权限(9个字符)
1.1基础权限说明
分三组:
前三个字符是表示用户(属主)权限位(user)
中三个字符是表示用户组权限位 group 用户组
后三个字符是其它用户权限位 others 其它用户
1.2 字符权限位置
即使是同一组的三个字符权限也是有位置的:
r--一个字符的位置读的权限位 4 表示有读取、浏览文件内容读取实体block的权限。
w第二个字符的位置写的权限位 2 表示具有新增、修改、删改文件内容的权限。
x第三个字符的位置是执行的权限位。1 表示具有执行文件的权限。
- 0
1.3对于可执行的特点:
首先文件的本身要有能执行(命令或脚本)
如果是普通用户,同时还需要具备可读r的权限
而root用户只要有可执行X的权限就能执行文件
可执行X:表示具有执行文件的权限。
其中,对于可读r,这里有两点需要说明:
(1)如果没有可读r配合,那么使用vim编辑文件会提示无法编辑,但是可以通过强制保存退出编辑,也可使用echo等命令进行重定向或追加。
(2)删除文件或创建文件的权限是受父目录(上一级目录)的权限控制的(因为文件名没有存放在lnode里,而是在上级目录的block里存放的,若修改上级目录的block(删除文件本质),当然会受到上级目录的lnode的权限控制),和文件本身的权限无关,因此,文件本身的可写权限,和文件是否能被删除和改名无关。
1.4 文件详细说明
1.5linux目录权限
linux系统中目录的权限和文件有一些其席位的区别
可读r :表示具有浏览目录下面文件及子目录名的权限
可写W:表示具有增删改目录内文件的内容
可执行x:表示具有进入目录的权限 利用cd切换可以查看
权限修改:
777 +x -x u=w g-x
linux权限有两种表现形式:
1.数字表示法
r 4
w2
x1
- 0
实际的权限表示就是每三位相加。
rwxr-xr-x 755
2.字符表示法
1.6用户及用户组的权限说明
(1)用户或用户组的定义
u 代表主用户 (owner/user)
g 代表属组 (group)
o 代表其它用户 (other)
a或者不写,同时代表ugo属主、属组和其它用户,也就是上面上个(用户、用户组、其它)所有(all)
(2)权限定义字母,和前文一直
r 代表读权限,数字4
w代表写权限,数字2
x代表执行权限,数字1
-代表没有权限,数字0
(3)权限增减字符详细定义
+:添加权限
-:取消权限
= :取消其它所有权限,然后赋予给定权限
(4)修改文件属性的用户和组
chown 用户.用户组 文件 这里的点可用:替代。
chown 用户 文件
chown .用户组 文件 ====chgrp 用户组 文件
1.7 安全临界点:
创建文件默认最大的权限为666(rw-rw-rw-),其默认创建的文件没有可执行权限x位。文件不想被修改被执行:系统临界点(644)
创建目录默认最大的权限为777(rwxrwxrwx)目录不想被修改被执行(删除移动创建)被执(进入):755
1.8 umask 控制默认权限的东西
(1)基于文件:默认权限规则 了解
从666计算
umask都为偶数 默认权限用减法
umask有奇数 默认权限用减法 然后奇数位加1
(2)基于目录:默认权限规则
从777计算
默认权限用减法
实例:
666
011
-------------------
655
11
-----------------
666
1.9 linux系统特殊权限位知识
9位基础权限和3位特殊权限位
工作中有啥用?
suid到底有什么作用
简单地说,suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序时,
拥有和root管理员一样的身份和权限(默认情况)。
例如:
[oldgirl@oldboyedu /]$ ll -ld oldboy/
dr-x-wxrw-. 2 oldboy incahome 6 Oct 7 22:15 oldboy/
oldgirl属于incahome,增加一个用户属于incahome,是不是也和oldgirl有同样权限。
oldboy 给一个新用户设置suid,这个新用户的权限就和oldboy一样。
(1)suid位:
suid(setuid)位通过S字符标识,
存在于基本权限的用户权限位的x权限对应的位置,
如果用户权限位对应的x权限位上有x权限,则suid就用小写的s标识,
suid的s对应的数字权限为4,完整权限用八进制数4000表示。
(2)sgid位:
sgid(setgid)位同样是通过S字符来标识,
但是,sgid位存在于基本权限的用户组权限位的x权限对应的位置,
如果用户组权限位对应的x权限位上有x权限,则sgid就用小写的s标识,
suid的s对应的数字权限为2,完整的权限用八进制数2000表示。
(3)sticky(粘滞位)知识简介
sticky(粘滞)位通过字符T标识,存在于基本权限的其他用户位对应的x权限位上,
如果其他用户位的x权限位上有x权限,
则sticky(粘滞)位通过小写的t标识,对应的数字权限是1,
完整的权限用八进制数1000表示。
实例:
4 2 1,加和放在基础权限数字的前面。
修改方法:
[root@oldboyedu /oldboy]# chmod 7755 abc
预测:-rwsr-sr-t
[root@oldboyedu /oldboy]# chmod 7755 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwsr-sr-t 1 root root 0 Oct 7 23:42 abc
[root@oldboyedu /oldboy]# chmod 7644 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwSr-Sr-T 1 root root 0 Oct 7 23:42 abc
关于权限的案例:
博客:写博客。。。服务器的博客目录和文件的权限,防止被恶意篡改。
企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)
用户打开网站,报警。
原因:权限设置不到位。chmod -R 777 目录 开发人员习惯
解决方案:
1、备份
tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
2、找到被修改的文件
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
/oldboy/oldboy.txt:<script>ddddddddddddd</scripts>
/oldboy/test.sh:<script>ddddddddddddd</scripts>
3、批量删除
[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
4、找到文件被篡改来源,并优化调整。
亡羊补牢。
5、写总结 故障报告。
控制默认权限的东西 umask
[root@oldboyedu /oldboy]# umask
022