Linux文件特殊权限(SUID、SGID和SBIT)的设置

我们知道,对文件或者目录设定权限可以使用chmod命令(采用数字和字母的方法),而设定三种特殊权限也可以采用这样的方式。

1、数字方式

1.1 三种权限的数字对应形式

  • SUID------>4
  • SGID------>2
  • SBIT------->1

1.2 修改方式

在设定的rwx数字值前面添加三种特殊权限的数字(及其组合)

1.3 举例

  1. 执行chmod 4755 文件名命令,就完成了-rwsr-xr-x 权限的设定;
  2. 如果某文件拥有 SUID 和 SGID权限,则只需要给 chmod 命令传递 6—(- 表示数字)即可;
  3. 如果某目录拥有 SGID 和 SBIT,只需要给 chmod命令传递 3— 即可。

2、字母方式

可以通过 “u+s” 给文件赋予 SUID 权限;通过 “g+s” 给文件或目录赋予 SGID 权限;通过 “o+t” 给目录赋予 SBIT 权限。例如:

[root@localhost ~]#chmod u+s, g+s, o+t ftest
#设置特殊权限
[root@localhost ~]# ll ftest
-rwsr-sr-t. 1 root root Apr 19 23:54 ftest
[root@localhost ~]# chmod u-s, g-s, o-t ftest
#取消特殊权限
[root@localhost ~]# ll ftest
-rwxr-xr-x. 1 root root Apr 19 23:54 ftest

注意:细心的读者可能发现这样一个问题,使用 chmod 命令给文件或目录赋予特殊权限时,原文件或目录中存在的 x 权限会被替换成 s 或 t,而当我们使用 chmod 命令消除文件或目录的特殊权限时,原本消失的 x 权限又会显现出来。
这是因为,无论是 SUID、SGID 还是 SBIT,它们只针对具有 x 权限的文件或目录有效。没有 x 权限的文件或目录,即便赋予特殊权限,也无法发挥它们的功能,没有任何意义。

你可能感兴趣的:(#,权限,linux)