• Linux Stick BIT(SBIT)文件特殊权限用法详解

    Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。

    SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。

    也就是说,当甲用户以目录所属组或其他人的身份进入 A 目录时,如果甲对该目录有 w 权限,则表示对于 A 目录中任何用户创建的文件或子目录,甲都可以进行修改甚至删除等操作。但是,如果 A 目录设定有 SBIT 权限,那就大不一样啦,甲用户只能操作自己创建的文件或目录,而无法修改甚至删除其他用户创建的文件或目录。

    举个例子,Linux 系统中,存储临时文件的 /tmp 目录就设定有 SBIT 权限:

    [root@localhost ~]# ll -d /tmp
    drwxrwxrwt. 4 root root 4096 Apr 19 06:17 /tmp

    可以看到,在其他人身份的权限设定中,原来的 x 权限位被 t 权限占用了,这就表示此目录拥有 SBIT 权限。通过下面一系列的命令操作,我们来具体看看 SBIT 权限对 /tmp 目录的作用。

    [root@localhost ~]# useradd lamp
    [root@localhost ~]# useradd lamp1
    #建立测试用户lamp和lamp1,省略设置密码过程
    [root@localhost ~]# su -lamp
    #切换为lamp用户
    [lamp@localhost ~]$ cd /tmp
    [lamp@localhost tmp]$ touch ftest
    #建立测试文件
    [lamp@localhost tmp]$ll ftest
    -rw-rw-r-- 1 lamp lamp Apr 19 06:36 ftest
    [lamp@localhost tmp]$ su - lamp1
    #省略输入lamp1用户密码的过程,切换成lamp1用户
    [lamp1 @localhost ~]$ cd /tmp/
    [lamp1 @localhost tmp]$ rm -rf ftest
    rm:cannot remove 'ftest':Operation not permitted

    可以看到,虽然 /tmp 目录的权限设定是 777,但由于其具有 SBIT 权限,因此 lamp 用户在此目录创建的文件 ftest,lamp1 用户删除失败。

    有兴趣的读者也可以尝试使用 lamp1 用户修改 lamp 用户创建的 ftest 文件中的内容,你会发现根本修改不了,这就是 SBIT 权限的作用。

更多...

加载中...