权限
Linux基础权限是9个字符
[root@oldboy_template-2 ~]# ls -lhi
total 0
51523334 drwxr-xr-x 2 root root 94 Mar 20 21:48 oldboy
文件权限:
rwx r-x r-x
user group others
r read读取 4
w write 写 2
x execute 1
- 没有权限
分三组:
前三个字符是表示用户(属主)权限位 u
中三个字符是表示用户组权限位 g
后三个字符是表示其它用户权限位 o
同一组的三个字符权限也是有位置的:
r-- 第一个字符的位置是读的权限位
-w- 第二个字符的位置是写的权限位
--x 第三个字符的位置是执行的权限位
Linux系统中的权限对于文件和目录来说,是有一定区别的,下面先列举下普通文件对应的权限重要指示。
1)可读r:表示具有读取、浏览文件内容(即读取文件实体block)的权限
2)可写w:表示具有新增、修改、删除文件内容的权限
3)可执行x:表示具有执行文件的权限
其中,对于可读r,这里有两点需要说明:
①如果没有可读r配合,那么使用vi编辑文件时会提示无法编辑(但是可以强编辑),可以使用echo等命令进行重定向或追加
②删除文件或创建文件的权限是受腹肌目录(上一级目录)的权限控制的(因为文件名没有放到Inode里,而是放在上级目录的Block里存放着的,若修改上级目录的Block(删除文件本质),当然会受到上级目录的Inode的权限控制),和文件本身的权限无关,因此,文件本身的可写w权限,和文件是否能够被删除和改名无关。
usermod -g icnahome oldboy usermod修改用户权限 -g修改所属组 icnahome组名ZZ
id oldboy 查看oldboy所属组
如果此前没有创建oldboy用户,可以执行下面命令,
useradd oldboy -g icnahome
userdel oldboy 删除用户
权限修改:
Linux权限有两种表现形式:
1、数字表示法
r read读取 4
w write 写 2
x execute 1
实际的权限表示就是将每三位相加,即可
2、字符表示法
用户类型:u g o a
操作字符:+ - =
权限字符:r w x -
修改文件属性的用户和组
chown 用户.用户组 文件 这里的点可以用冒号代替
chown 用户 文件
chown .用户组 文件
安全权限临界点:
文件不想被修改:644
默认也是644
[root@oldboy_template-2 oldboy]# ls -l
total 24
-rw-r--r-- 1 root root 68 Mar 20 12:25 123.123
目录不想被修改(删除移动创建)被执行(进入):755
服务器的博客目录和文件的权限,防止被恶意篡改
控制默认权限的东西 umask
[root@oldboy_template-2 oldboy]# umask
0022
创建文件默认最大的权限是666 (-rw-rw-rw-),其默认创建的文件没有可执行权限x位
666
022
-------------
644 默认权限
umask设置linux默认权限
当umask中存在奇数位的时候,在计算完毕后,奇数位加1
--------------------------------------------------------------------
基于文件:默认权限规则
从666计算做减法
umask都为偶数,默认权限用减法
umask有奇数,默认权限用减法,然后奇数位加1
基于目录:默认权限规则
从777计算做减法
对文件目录的修改都是永久的,对自身环境的设置都是临时的
解决方案:
1、备份
2、找到被修改的文件
3、批量删除
4、找到文件被篡改的来源,并优化调整
亡羊补牢
5、写总结 故障报告
还有3位特殊权限位
suib位:
suid(setuid)位通过s字符标识,
存在于基本权限的用户权限位的用户权限为的x权限对应的位置,
如果用户权限位对应的x权限位上有x权限,则suid就用小写的s标识,
suid的s对应的数字权限为4,完整权限用八进制数4000表示。
sgid位:
sgid(setgid)位同样是通过S字符来标识,
但是,sgid位存在于基本权限的用户组权限位的x权限对应的位置,
如果用户组权限位对应的x权限位上有x权限,则sgid就用小写的s标识,
sgid的s对应的数字权限为2,完整的权限用八进制数2000表示。
sticky(粘滞位)知识简介
sticky(粘滞)位通过字符T标识,存在于基本权限的其他用户位对应的x权限位上,
如果其他用户的x权限位上有x权限,
则sticky(粘滞)位通过小写的t标识,对应的数字权限是1,
完整的权限用八进制数1000表示。
类别 SUID SGID sticky
表示字符 S S T
占据位置 基本权限x位 基本权限x位 基本权限x位
基本权限位有x s s t
数字表示 4 2 1
八进制表示 4000 2000 1000
作用 针对用户位 针对用户组 其它用户
工作中有什么用?
suid到底有什么用
简单的说,suid的作用就是让普通用户和普通
suid核心知识小节
1)suid功能是针对二进制命令或程序的,不能用在shell等类似脚本文件上
2)用户或属主对应的前三位权限的x位上,如果有s(S)就表示具备suid权限
3)suid的作用就是让普通用户可以在执行某个设置了suid位的命令或者程序时,拥有和root管理员一样的身份和权限(默认)
4)二进制命令程序需要有可执行权限x配合才行
5)suid对应的身份和权限仅在程序命令执行过程中有效
6)suid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁,企业里用户授权可以使用sudo等代替sgid功能
7)在进行安全优化时,系统默认设置了suid权限的命令要取消掉