Linux Stick BIT权限(SBIT)

Linux Stick BIT权限(SBIT)教程

Linux 中的 Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。

Linux Stick BIT权限(SBIT)详解

我们使用 ls 命令,查看 /tmp 文件的权限,具体命令如下:

ls -l /tmp

运行后,终端输出如下:

73_Linux Stick BITSBIT特殊权限.png

可以看到,存储临时文件的 /tmp 目录就设定有 SBIT 权限,也就是在其他人身份的权限设定中,原来的 x 权限位被 t 权限占用了,这就表示此目录拥有 SBIT 权限。

现在,我们首先使用 useradd 命令,增加一个 haicoder 用户,具体命令如下:

useradd haicoder

运行后,终端输出如下:

74_Linux Stick BITSBIT特殊权限.png

现在,我们再次使用 useradd 命令,增加一个 haicoder1 用户,具体命令如下:

useradd haicoder1

运行后,终端输出如下:

75_Linux Stick BITSBIT特殊权限.png

现在,我们使用 su 命令,切换到 haicoder 用户,具体命令如下:

su haicoder

运行后,终端输出如下:

76_Linux Stick BITSBIT特殊权限.png

现在,我们使用 touch 命令,在 /tmp 下创建一个文件,具体命令如下:

touch /tmp/haicodertest

运行后,终端输出如下:

77_Linux Stick BITSBIT特殊权限.png

现在,我们使用 ls 命令,查看创建的文件的权限,具体命令如下:

ls -l /tmp/haicodertest

运行后,终端输出如下:

78_Linux Stick BITSBIT特殊权限.png

现在,我们再次使用 exit 命令,退出 haicoder 用户,并再次使用 su 命令切换到 haicoder1 用户,具体命令如下:

exit su haicoder1

运行后,终端输出如下:

79_Linux Stick BITSBIT特殊权限.png

现在,我们使用 rm 命令,删除 /tmp/haicodertest 文件,具体命令如下:

rm -rf /tmp/haicodertest

运行后,终端输出如下:

80_Linux Stick BITSBIT特殊权限.png

可以看到,虽然 /tmp 目录的权限设定是 777,但由于其具有 SBIT 权限,因此 haicoder 用户在此目录创建的文件 haicodertest,haicoder1 用户删除失败。测试完毕,我们使用 userdel 命令,删除创建的用户:

userdel -r haicoder userdel -r haicoder1

使用 r 参数,删除用户相关目录。

Linux Stick BIT权限(SBIT)总结

当 Linux 中的 Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。