欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

程序员文章站 2022-06-03 21:45:19
...

一、常规性基础介绍

使用 ls -al file 命令,可以查看到file的全部属性,常规为rwx权限在 user、group、other属性位的值。但除此之外,针对x权限位,还有对应的特殊属性: --s--s--t 

suid    s(有x权限显示小写)/ S    所属用户对应的权限位

sgid    s(有x权限显示小写)/ S    所属组对应的权限位

sticky    t(有x权限显示小写)/ T    其他用户对应的权限位 

A.所有者(user)的s权限:

称为Set UID,简称为SUID的特殊权限;

限定:只能在设置二进制可执行程序上面对目录设置无效

功能:即当执行该文件时,将具有该文件所有者的权限。

设定suid的命令:  chmod u+s  file          #注意,file 为可执行,可运行的二进制文档才真正有效

B.所属组(group) 的s权限:

称为Set GID,简称为SGID的特殊权限;

限定:既可以给二进制可执行程序,也可能以对目录设置。

功能:在设置了SGID权限的文件夹内新建文档时,新建的文档的所属组,将继承该文件夹(具有s属性)的所属组。

设定sgid的命令:chmod 2755 file 或者 chmod g+s file

C.其他用户(other)的t权限:

称为Sticky Bit,简称为SBIT权限。

限定:只针对目录有效

功能:让文档的所有者(user)及root可以删除(重命名/移动)该文件夹下的文件;即便是该目录具有w权限,但是除了root用户,其他用户只能对自己的文件进行删除、移动操作。

设定sticky的命令:chmod 1777 file 或者 chmod o+t file

二、各功能的设定和测试操作

1.设置测试文档。 这里新建了文件夹test 以及文件夹内的test.file 这个文档,并设定了rwx权限

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

 2. 对文件夹增加 sticky 的t 权限   chmod o+t test

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

3.对文件增加 suid/sgid 的s权限  chmod u+s test/test.file     chmod g+s test/test.file

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

4. 取消对应的特殊权限。  将上述过程中的+号改成-号即可

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

5.在没有x权限的情况下增加相应的权限。 可以看到,对应的权限位显示为大写的T和S

Linux系统文档和文件夹的特殊权限 s s t ,使得仅文件所有者可删除和移动文档

 三、具体应用举例

3.1 设置一个完全开放的共享文件夹, 所有用户都可以在该文件夹下新建、编辑、删除所有者为自己的账户的文件夹和文档,其他用户则不能删除

mkdir test2
chmod -R 0777 test2
chmnod o+t test2

3.2 设置一个用于组内共享的文件夹,将其用户组更改为caiwu,使得在该文件夹下的所有新建文档,其用户组都是caiwu,则同属于caiwu组的用户,都具有对应的权限.

mkdir test3
chmod -0755 test3
chown :caiwu test3