文章封面: 崩坏学园 2/艾拉·苍墟之影
linux 的特殊权限分别为SUID
,SGID
,SBIT
三个权限。
SUID 权限
当可执行文件拥有SUID 权限
,普通用户就可以,以文件所有者
的权限来执行该文件,从而临时获得特定权限。
如果所有者是root
用户,它将具有与 root
用户相同的特权级别,可以执行只有 root
用户才能执行的操作。
被赋予SUID 权限
的文件会变成红色的,文件属性的所有者权限
会变成 rws
而不是 rwx
。
普通用户就可以,以root
用户的权限使用该命令。
移出了SUID 权限
,普通用户就无法访问root
目录的文件了。
注意:千万不要将 SUID 权限赋予 vim、cat、rm 等命令上面!!!可能会引发潜在的安全风险。
SGID 权限
SGID 权限
可以应用于可执行文件和目录,不过这次是只获得组的权限
。
可执行文件
:可以让使用者临时获得,文件所属组
的权限。目录
:会影响在该目录下新创建的文件或子目录,可以自动继承该目录的组身份
。
SGID 权限针对可执行文件:
赋予 SGID 权限
后文件会变为黄色,文件所属组
的权限会变成 r-s
不是 r-x
。
普通用户也可以,以所属组
的权限使用该命令,其实和上面 SUID 权限
的情节差不多了,不过针对的是组。
移出对执行文件的SGID 权限
。
SGID 权限针对目录:
首先创建目录,并赋予权限。
赋予 SGID 权限给目录后,目录所属组
的权限会变成 rws
。
切换普通用户创建文件来实验自动继承,创建的文件已经继承了上一级目录的用户组了。
移出对目录的SGID 权限
。
SBIT 权限
当某个目录被赋予SBIT 权限
后,那么只有该目录的所有者和root
用户才能够删除该目录下的文件或子目录,其他用户不能删除其他人的文件。
对目录赋予SBIT 权限
后目录的其他用户的权限
会变成 rwt
。
然后切换到普通用户先创建个文件,让其他用户来尝试删除。
删除失败,其实还可以和 SGID 权限
一起使用的。
SUID
,SGID
,SBIT
权限的设置方法
符号模式
1 | chmod [ugo][+-=][st] 文件名/目录名 |
u
表示文件所有者,g
表示同组用户,o
表示其他用户,a
表示所有用户(等价于 ugo
的组合)。+
表示添加权限,-
表示移除权限,=
表示设置与指定权限相同的权限。s
设置 UID 或 GID 位,t
设置 SBIT 权限。
数字模式
1 | chmod [0-7][0-7][0-7][0-7] 文件名/目录名 |
这里比前面的要多一位,不过影响不大。
第一位是SUID
,SGID
,SBIT
权限的位置。
后三位(0-7)表示所有者、所属群组和其他用户的读取、写入和执行权限(rwx)
经常用的就 4
,2
,1
下面没必要记住。
权限 | 数字 | 描述 |
---|---|---|
--------- |
0 |
没有对应权限 |
--------t |
1 |
SBIT |
-----s--- |
2 |
SGID |
-----s--t |
3 |
SGID+SBIT |
--s------ |
4 |
SUID |
--s-----t |
5 |
SUID+SBIT |
--s--s--- |
6 |
SUID+SGID |
--s--s--t |
7 |
SUID+SGID+SBIT |
如果没有搞明白可以试试下面这个网站,挺直白的操作几下就明白原理了,可能要梯子。
这里 → Chmod Calculator