1.Linux文件权限
1.1分组:
1.1.1前三个字符是表示用户(属主)权限位user(用户)
1.1.2中三个字符是表示用户组权限位group(用户组)
1.1.3后三个字符是其他用户权限位others(其他用户)
1.2同一组的三个字符权限也是有位置的
1.2.1 rwx :
第一个字符的位置是读的权限位
第二个字符的位置是写的权限位
第三个字符的位置是执行的权限位
1.3权限详细说明
1.3.1可读r:表示具有读取,游览文件内容的权限
1.3.2可写w:表示具有新增,修改,删除文件内容的权限
1.3.3可执行x:表示具有执行文件的权限
对于可执行x,需要注意以下3点:
a、首先文件本身要能够执行(命令或脚本)
b、如果是普通用户,同时还需要具备可读r的权限才能执行文件
c、而root用户只要有可执行x的权限就能执行文件
对于可读r:
a、如果没有可读r配合,那么使用vi编辑文件是会提示无法编辑(但可强制编辑),可以使用echo等命令进行重定向或追加
b、删除文件或创建文件的权限是受父目录的权限控制的(也就是上一级目录),(因为文件名没有存放在inode里,而是在上级目录的block里存放着的,若修改上级目录的block,会受到上级目录inode的权限控制),和文件本身的权限无关,因此,文件本身的可写w权限,和文件是否能被删除和改名无关
2.Linux权限的两种表现形式
2.1数字表示法
r ——4
w ——2
x ——1
- ——0
2.2字符表示法
2.3 修改权限的方法
chmod 的用法:(改权限的)
chmod 数字组合 文件名
chown的用法:(改属性的)
chown 用户. 用户组 文件 (这里的点可以用:代替)
chgrp 修改用户组family:
2.4安全权限的临界点
文件不想被修改被执行:644
目录不想被修改(删除、移动、创建)被执行(进入):755
3.umask修改方法
3.1基于文件:默认位权限规则
a、Umask都为偶数,默认权限用减法
b、Umask有奇数,默认权限用减法,然后奇数位加1
3.2基于目录:默认权限规则
a、从777计算
b、默认权限用减法
4.linux特殊权限
4.1suid位:
a、suid(setuid)位通过S字符标识。
b、存在于基本权限的用户权限位的x权限对应的位置。
c、如果用户权限位对应的x权限位上有x权限,则suid就用小写的s标识。
d、suid的s对应的数字权限为4,完整权限用八进制数4000表示。
4.2sgid位:
sgid(setgid)位同样是通过S字符来标识,但是sgid位存在于基本权限的用户组权限位的x权限对应的位置,如果用户组权限位对应的x权限位上有x权限,则sgid就用小写的s标识,suid的s对应的数字权限为2,完整的权限用八进制数2000表示。
4.3sticky(粘滞位):
sticky(粘滞)位通过字符T标识,存在于基本权限的其他用户位对应的x权限位上,如果其他用户位的x权限位上有x权限,则sticky(粘滞)位通过小写的t标识,对应的数字权限是1,完整的权限用八进制数1000表示。
5.企业真实案列:
解决方案:
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'