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

相關文章
相關標籤/搜索