文件权限
Linux基础权限是9个字符。
[root@oldboyedu ~]# ls -lhi
total 36K
33631870 -rw-r--r--. 1 root root 21 Oct 6 22:54 a.txt
前三个字符是表示用户(属主)权限位user(用户) u
中三个字符是表示用户组权限位group(用户组) g
后三个字符是其它用户权限位others(其他用户) o
r--第一个字符的位置读的权限位
(1)数字表示法 称为8进制权限
r 4
w 2
x 1
- 0
实际的权限表示就是将每3位相加即可。
rwxr-xr-x 755
rwx 7
r-x 5
r-x 5
(2)字符表示法
rw-rw-r-x代表的数字权限为665
--xr-x-wx代表的数字权限为153
-wx--x--x代表的数字权限为311
而以下数字权限表示的字符权限如下:
755代表的字符权限为rwxr-xr-x
644代表的字符权限为rw-r--r--
134代表的字符权限为--x-wxr--
chown用户.用户组 文件 这里的点可以用:替换。
chown用户 文件
chown .用户组 文件 ====chgrp 用户组 文件
chgrp incahome test.txt
文件不想被修改被执行:644
[root@oldboyedu /oldboy]# touch oldboy.txt
[root@oldboyedu /oldboy]# ls -l
total 4
-rw-r--r-- 1 root root 0 Oct 7 23:21 oldboy.txt
目录不想被修改(删除移动创建)被执行(进入):755
网站文件被恶意修改,打开网站后有弹窗广告(不是你网站的),用户打开网站,报警。
原因:权限设置不到位。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)写总结 故障报告。
控制默认权限
[root@oldboyedu /oldboy]# umask
022
创建文件默认最大的权限为666(-rw-rw-rw-),其默认创建的文件没有可执行权限x位。
666
022 -
--------------------
644默认权限
[root@oldboyedu /oldboy]# umask 044 ====临时
[root@oldboyedu /oldboy]# touch abc
[root@oldboyedu /oldboy]# ls -l abc
-rw--w--w- 1 root root 0 Oct 7 23:42 abc
[root@oldboyedu /oldboy]# umask 044
[root@oldboyedu /oldboy]# touch abc
[root@oldboyedu /oldboy]# ls -l abc
-rw--w--w- 1 root root 0 Oct 7 23:42 abc
[root@oldboyedu /oldboy]# umask
0044
[root@oldboyedu /oldboy]# umask 043
[root@oldboyedu /oldboy]# umask
0043
[root@oldboyedu /oldboy]# touch a
[root@oldboyedu /oldboy]# ls -l a
-rw--w-r-- 1 root root 0 Oct 7 23:44 a
当umask中存在奇数位的时候,在计算完毕,奇数位加1
666
011
-------------------
655
11
-----------------
666
(1)基于文件
从666计算
umask都为偶数 默认权限用减法
umask有奇数 默认权限用减法 然后奇数位加1
(2)基于目录:默认权限规则
从777计算
默认权限用减法
9位基础权限
还有3位特殊权限位
(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)使用方法
修改方法:
[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
(5)作用
suid到底有什么作用
简单地说,suid的作用就是让普通用户可以在执行某个设置了suid位的命令或程序时,
拥有和root管理员一样的身份和权限(默认情况)。