Linux中的粘滞位

时间:2021-03-26 12:20:31

众所周知,Linux系统中umask的默认权限掩码是0022

Linux中的粘滞位

创建目录的默认权限=777-022=755,创建文件的默认权限=666-022=644。权限运算的时候我们一般都是用三位数字,那么0022中第一个数字到底代表什么呢?

在Linux中,除开写、读、执行三个权限,还包括suid、sgid、sticky这三种特殊权限,而0022中第一个0即代表特殊权限位。接下来,我打算研究一下sticky权限。

粘滞位权限(sticky)

1.功能

设置了粘滞位权限后,即便用户对目录有写权限,也不能删除该目录中其他用户的文件。确保该文件只能由其创建者或root删除,防止普通用户删除其他用户的文件。

2.作用对象

粘滞位权限只能针对目录设置,对于文件无效,而且都是针对其他用户(other)设置的。

3.表现形式

sticky表现为文件其他用户可执行权限位上的t或T。

若设置之前其他用户已具有可执行权限,则显示为t,否则显示为T。

Linux中的粘滞位

Linux中的粘滞位

数字1表示增加粘滞位权限,数字0表示取消粘滞位权限。

以下两条命令都可用于给file设置粘滞位权限。

chmod o+t file

chmod 1755 file

4.测试

test目录的属主是gd,给test加上粘滞位权限后,切换到普通用户tjp并删除test,但是删除失败。

Linux中的粘滞位Linux中的粘滞位

创建一个文件test2.c,属主为root,给test2.c添加粘滞位权限后,切换到普通用户tjp并删除test2.c,删除成功。可见粘滞位权限只能针对目录设置,对于文件无效。

Linux中的粘滞位