系統中的/tmp/目錄是擁有stick_bit權限的 [root@hf-01 ~]# ls -ld /tmp/ drwxrwxrwt. 9 root root 4096 10月 27 05:14 /tmp/
[root@hf-01 ~]# cd /tmp/ [root@hf-01 tmp]# ls aminglinux amning mysql.sock yum.log
在終端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
- 就是防止別人刪除本身的文件(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
文件是否能夠被某用戶刪除,主要取決於該文件所在的目錄是否對該用戶具備寫權限。若是沒有寫權限,則這個目錄下的全部文件都不能刪除,同時也不能添加新的文件。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