2.20 特殊权限stick_bit

stick_bit介绍

系统中的/tmp/目录是拥有stick_bit权限的
[root@hf-01 ~]# ls -ld /tmp/
drwxrwxrwt. 9 root root 4096 10月 27 05:14 /tmp/
  • 这drwxrwxrwt.里面的t(t里面包含x权限),就是stick_bit权限,
  • stick_bit(t):又叫作防删除位。只对目录有效,对文件无效。
    • 在/tmp/下有不少相似的文件,拥有777权限,说明任何一个用户均可对这个目录可写,并建立本身的文件
    [root@hf-01 ~]# cd /tmp/
    [root@hf-01 tmp]# ls
    aminglinux  amning  mysql.sock  yum.log
  • 至关于stick-bit设置others权限位。

stick_bit用法

在终端2hf(1)下

[hanfeng@hf-01 ~]$ whoami   查看所属主
hanfeng
[hanfeng@hf-01 ~]$ cd /tmp/     切换到/tmp/目录下
[hanfeng@hf-01 tmp]$ ls
aminglinux  amning  mysql.sock  yum.log
[hanfeng@hf-01 tmp]$ touch yunwei   新建文件yunwei
[hanfeng@hf-01 tmp]$ ls -l  会看到文件yunwei的所属主和所属组都是hanfeng
总用量 0
drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinux
drwxr-xr-x. 3 root    root    14 10月 25 06:29 amning
srwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sock
-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log
-rw-rw-r--. 1 hanfeng hanfeng  0 10月 27 08:40 yunwei
[hanfeng@hf-01 tmp]$ vi yunwei  并能够编辑文件
[hanfeng@hf-01 tmp]$ chmod 777 yunwei   将yunwei文件权限修改成777
[hanfeng@hf-01 tmp]$ ls -l  会看到yunwei的权限变化为-rwxrwxrwx.
总用量 4
drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinux
drwxr-xr-x. 3 root    root    14 10月 25 06:29 amning
srwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sock
-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log
-rwxrwxrwx. 1 hanfeng hanfeng 26 10月 27 08:41 yunwei

这时在切换到1hf(0)下
[root@hf-01 tmp]# whoami    查看所属主
root
[root@hf-01 tmp]# su - user1    切换到user1用户下
[user1@hf-01 ~]$ cd /tmp/       切换到目录/tmp/下
[user1@hf-01 tmp]$ ls       会发现能够查看到文件
aminglinux  amning  mysql.sock  yum.log  yunwei
[user1@hf-01 tmp]$ vi yunwei    也能够进行编辑
[user1@hf-01 tmp]$ rm -f yunwei     不能够删除文件yunwei的
rm: 没法删除"yunwei": 不容许的操做

因此说,这个stick_bit权限叫防删除位,只有有权限的用户(好比root)才能够删除,而其余的用户是根本没法删除掉的mysql

stick_bit例子

  • 就是防止别人删除本身的文件(root用户除外)
在终端1hf(0)下

[user1@hf-01 tmp]$ mkdir user1  新建目录user1
[user1@hf-01 tmp]$ chmod 777 user1  并把权限修改成777
[user1@hf-01 tmp]$ ls -l
总用量 4
drwxr-xr-x. 4 user1   hanfeng 39 10月 26 08:23 aminglinux
drwxr-xr-x. 3 root    root    14 10月 25 06:29 amning
srwxrwxrwx. 1 mysql   mysql    0 10月 27 02:47 mysql.sock
drwxrwxrwx. 2 user1   user1    6 10月 27 08:57 user1        777权限,意味着任何用户均可以去写,可读,可执行
-rw-r--r--. 1 user1   root     0 10月 26 07:48 yum.log
-rwxrwxrwx. 1 hanfeng hanfeng 45 10月 27 08:43 yunwei

切换到终端2hf(1)下

[hanfeng@hf-01 tmp]$ cd user1   切换到目录user1下面
[hanfeng@hf-01 user1]$ touch 1.txt  发现能够建立文件
[hanfeng@hf-01 user1]$ mkdir 234    能够建立目录
[hanfeng@hf-01 user1]$ ls -l
总用量 0
-rw-rw-r--. 1 hanfeng hanfeng 0 10月 27 09:03 1.txt
drwxrwxr-x. 2 hanfeng hanfeng 6 10月 27 09:03 234

在切换到终端1hf(0)下

[user1@hf-01 tmp]$ cd user1
[user1@hf-01 user1]$ ls
1.txt  234
[user1@hf-01 user1]$ ls -l
总用量 0
-rw-rw-r--. 1 hanfeng hanfeng 0 10月 27 09:03 1.txt
drwxrwxr-x. 2 hanfeng hanfeng 6 10月 27 09:03 234
[user1@hf-01 user1]$ rm -f 1.txt
[user1@hf-01 user1]$ ls
234
[user1@hf-01 user1]$ rm -r 234
rm:是否删除有写保护的目录 "234"?y
[user1@hf-01 user1]$ ls
[user1@hf-01 user1]$ pwd    
/tmp/user1
[user1@hf-01 user1]$ ls -ld .
drwxrwxrwx. 2 user1 user1 6 10月 27 09:07

上述例子,这是由于这个目录,删除的这个文件所在的目录有没有写权限,而不是看删除的文件自己的权限,user1目录下有1.txt文件,要想删除1.txt,看的不是1.txt文件的权限,而是看1.txt所在目录的权限,它所在的目录是user1,user1就是777,777是任何用户可编辑的,因此就可删除,而一旦咱们加上了stick_bit权限linux

stick_bit总结

  • 文件是否能够被某用户删除,主要取决于该文件所在的目录是否对该用户具备写权限。若是没有写权限,则这个目录下的全部文件都不能删除,同时也不能添加新的文件。sql

  • 若是但愿用户可以添加文件,可是不能删除该目录下其余用户的文件,则能够对该目录增长这个权限。ui

  • 设置该权限后,就算用户对目录具备写权限,也不能删除其余用户的文件。code

  • 有时候,set-uid上的权限为大写的S,而不是小写的s。这是由于该文件没有x权限所致,无论是大写的S仍是小写s,都表示它存在set-uid和set-gid权限。同理stick-bit也同样。it

  • 当有特殊权限时,第一位数字能够是0、1(--t)、2(-s-)、3(-st)、4(s--)、5(s-t)、6(ss-)、7(sst),这里的“(---)”,分别指user、group、others的权限位(rwx rwx rwx)。 如:/tmp是--t,因此第一位为1,因此/tmp权限用数字表示为1777。终端

  • 文件的读写执行权限不要和目录的读写执行权限混淆。权限

  • 好比:一个文件设置了可写权限,但目录未设置可写权限,表示不能删除该文件,但文件内容是可编辑的。yum

  • 一个目录设置了可写权限,但目录下文件没有可写权限,表示可删除该文件,但该文件不能编辑。可否删除一个文件或者目录,看得是这个文件或目录所在的父目录的权限,可否删除和文件自己的权限无关。nw

相关文章
相关标签/搜索