linux 的特殊权限

928 词

文章封面: 崩坏学园 2/艾拉·苍墟之影

linux 的特殊权限分别为SUID,SGID,SBIT三个权限。

SUID 权限

当可执行文件拥有SUID 权限,普通用户就可以,以文件所有者的权限来执行该文件,从而临时获得特定权限。
如果所有者是root用户,它将具有与 root 用户相同的特权级别,可以执行只有 root 用户才能执行的操作。

被赋予SUID 权限的文件会变成红色的,文件属性的所有者权限会变成 rws 而不是 rwx
SUID-权限

普通用户就可以,以root用户的权限使用该命令。
SUID-权限

移出了SUID 权限,普通用户就无法访问root目录的文件了。
SUID-权限

注意:千万不要将 SUID 权限赋予 vim、cat、rm 等命令上面!!!可能会引发潜在的安全风险。

SGID 权限

SGID 权限可以应用于可执行文件和目录,不过这次是只获得组的权限

  • 可执行文件:可以让使用者临时获得,文件所属组的权限。
  • 目录:会影响在该目录下新创建的文件或子目录,可以自动继承该目录的组身份
SGID 权限针对可执行文件:

赋予 SGID 权限后文件会变为黄色,文件所属组的权限会变成 r-s 不是 r-x
SGID-权限

普通用户也可以,以所属组的权限使用该命令,其实和上面 SUID 权限的情节差不多了,不过针对的是组。
SGID-权限

移出对执行文件的SGID 权限
SGID-权限

SGID 权限针对目录:

首先创建目录,并赋予权限。
SGID-权限

赋予 SGID 权限给目录后,目录所属组的权限会变成 rws
SGID-权限

切换普通用户创建文件来实验自动继承,创建的文件已经继承了上一级目录的用户组了。
SGID-权限

移出对目录的SGID 权限
SGID-权限

SBIT 权限

当某个目录被赋予SBIT 权限后,那么只有该目录的所有者和root用户才能够删除该目录下的文件或子目录,其他用户不能删除其他人的文件。

对目录赋予SBIT 权限后目录的其他用户的权限会变成 rwt
SBIT-权限

然后切换到普通用户先创建个文件,让其他用户来尝试删除。
SBIT-权限

删除失败,其实还可以和 SGID 权限一起使用的。
SBIT-权限

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)

经常用的就 421 下面没必要记住。

权限 数字 描述
--------- 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

留言