Linux第三週學習筆記(1)

Linux第三週學習筆記(1)ide


2.20 特殊權限stick_bit學習

特殊權限stick_bit:意爲防刪除位。文件是否能夠被某一個用戶刪除,主要取決於該文件所在目錄是否對該用戶具備寫的權限。若是沒有寫的權限,則這個目錄下的全部文件都不能刪除同時也不能添加新的文件。spa

 若是但願用戶可以添加文件可是不能刪除該目錄下其餘用戶的文件。則能夠對父目錄增長stick_bit權限。設置該權限後,就算用戶對目錄具備寫的權限,也不能刪除其它用戶的文件。it

--------------------------------------------------------------------------------------------- class

命令格式:權限

添加特殊權限stick_bit:chmod  o+t  /目錄/ 學習筆記

去掉特殊權限stick_bit:chmod  o-t  /目錄/touch

--------------------------------------------------------------------------------------------- 刪除文件

[root@daizhihong01 ~]# ls -ld /tmp/di

drwxrwxrwt. 15 root root 4096 2   5 20:10 /tmp/

/tmp/目錄的權限位有一個「t」這個就是特殊權限stick_bit,也叫防刪除位。

/tmp/目錄下有不少的文件,/tmp/目錄下其它用戶的權限位是rwt它仍然是有X權限的,任何一個用戶都對這個目錄可寫也能夠建立本身的文件。既然說誰均可以建立文件,誰都能在這個目錄下寫文件,若是用戶1建立了一個文件那用戶2是否能夠改或者看這個文件,看似能夠的可是更改不行(由於文件是用戶1建立因此用戶2不能隨便更改)因此Linux工程師就設置了特殊權限stick_bit,也就是說那個用戶建立的文件誰來作主,其它用戶不能刪除,這個權限是由父級目錄決定的。

-------------------------------------------------------------------------------------------

切換到yngndzh1用戶下,建立一個文件daizhihong222,建立之後全部者和所屬組都是yngndzh1.

[root@daizhihong01 tmp]# su yngndzh1

[yngndzh1@daizhihong01 tmp]$ touch daizhihong222

[yngndzh1@daizhihong01 tmp]$ ls -l

總用量 12

drwxr-xr-x  3 root     root       35 2   1 23:29 001

drwxr-xr-x  4 root     user       78 2   3 15:54 002

-rw-r--r--  1 root     root       14 2   1 23:37 123456.txt

-rw-r--r--  1 root     root        0 2   1 22:09 123.txt

-rw-r--r--  1 root     root       65 2   1 23:03 12.txt

-rw-r--r--  1 root     root     2564 1  29 23:22 anaconda-ks.cfg.1

-rw-rw-r--  1 yngndzh1 yngndzh1    0 2   5 20:42 daizhihong222

daizhihong222文件先寫入內容:

[yngndzh1@daizhihong01 tmp]$ vi daizhihong222

 

1234567890

0987654321

 

~                                                                                                                                   

~                                                                                                                                    

~                                                                                                                                   

~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

-- INSERT –

而後更改這個文件的權限,更改成777

[yngndzh1@daizhihong01 tmp]$ ls -l

總用量 16

drwxr-xr-x  3 root     root       35 2   1 23:29 001

drwxr-xr-x  4 root     user       78 2   3 15:54 002

-rw-r--r--  1 root     root       14 2   1 23:37 123456.txt

-rw-r--r--  1 root     root        0 2   1 22:09 123.txt

-rw-r--r--  1 root     root       65 2   1 23:03 12.txt

-rw-r--r--  1 root     root     2564 1  29 23:22 anaconda-ks.cfg.1

-rw-rw-r--  1 yngndzh1 yngndzh1   22 2   5 20:51 daizhihong222

 [yngndzh1@daizhihong01 tmp]$ chmod 777 daizhihong222(更改爲777權限)

[yngndzh1@daizhihong01 tmp]$ ls -l

總用量 16

drwxr-xr-x  3 root     root       35 2   1 23:29 001

drwxr-xr-x  4 root     user       78 2   3 15:54 002

-rw-r--r--  1 root     root       14 2   1 23:37 123456.txt

-rw-r--r--  1 root     root        0 2   1 22:09 123.txt

-rw-r--r--  1 root     root       65 2   1 23:03 12.txt

-rw-r--r--  1 root     root     2564 1  29 23:22 anaconda-ks.cfg.1

-rwxrwxrwx  1 yngndzh1 yngndzh1   22 2   5 20:51 daizhihong222(權限更改以後)

切換到yngndzh2用戶下更改和刪除daizhihong222這個文件:

是否能夠寫入內容:

[root@daizhihong01 ~]# su yngndzh2

[yngndzh2@daizhihong01 root]$ cd /tmp/

[yngndzh2@daizhihong01 tmp]$ ls -l daizhihong222

-rwxrwxrwx 1 yngndzh1 yngndzh1 22 2   5 20:51 daizhihong222

[yngndzh2@daizhihong01 tmp]$ vi daizhihong222

 

1234567890

0987654321

qweertqeertrtytuu

~                                                                                                                                   

~                                                                                                                                    

~                                                                                                                                   

~                                                                                                                                    

~                                                                                                                                   

~                                                                                                                                                                                                                                                                     

-- INSERT –

yngndzh2這個用戶是能夠寫入daizhihong222這個文件內容的

是否能夠刪除文件:

[yngndzh2@daizhihong01 tmp]$ rm -f daizhihong222

rm: 沒法刪除"daizhihong222": 不容許的操做

yngndzh2這個用戶下是不能刪除yngndzh1用戶建立的文件,因此說特殊權限stick_bit叫作防刪除位,不能刪除其它用戶建立的文件(root超級用戶除外),殊權限stick_bit就是防止其它用戶刪除本身建立的文件。因此但願用戶可以添加文件可是不能刪除該目錄下其餘用戶的文件。則能夠對父目錄增長stick_bit權限。設置該權限後,就算用戶對目錄具備寫的權限,也不能刪除其它用戶的文件。

-----------------------------------------------------------------------------------------------

文件是否能夠被某一個用戶刪除,主要取決於該文件所在目錄是否對該用戶具備寫的權限:

建立yngndzh2目錄,而且更改權限爲777,也就意味着任何用戶均可以去寫、讀、執行

[yngndzh2@daizhihong01 tmp]$ mkdir yngndzh2

[yngndzh2@daizhihong01 tmp]$ chmod 777 yngndzh2

[yngndzh2@daizhihong01 tmp]$ ls -ld yngndzh2

drwxrwxrwx 2 yngndzh2 yngndzh2 6 2   5 21:16 yngndzh2

切換用戶到yngndzh1用戶下,在yngndzh2目錄下建立文件和目錄:

[root@daizhihong01 ~]# su yngndzh1

[yngndzh1@daizhihong01 tmp]$ cd /tmp/yngndzh2

[yngndzh1@daizhihong01 yngndzh2]$ touch 1234.txt

[yngndzh1@daizhihong01 yngndzh2]$ mkdir 01

[yngndzh1@daizhihong01 yngndzh2]$ ls -l

總用量 0

drwxrwxr-x 2 yngndzh1 yngndzh1 6 2   5 21:24 01

-rw-rw-r-- 1 yngndzh1 yngndzh1 0 2   5 21:24 1234.txt

是能夠建立文件和目錄的

切換用戶到yngndzh2用戶下,在yngndzh2目錄下刪除yngndzh1用戶建立的文件和目錄:

[yngndzh2@daizhihong01 tmp]$ cd yngndzh2

[yngndzh2@daizhihong01 yngndzh2]$ ls -l

總用量 0

drwxrwxr-x 2 yngndzh1 yngndzh1 6 2   5 21:24 01

-rw-rw-r-- 1 yngndzh1 yngndzh1 0 2   5 21:24 1234.txt

[yngndzh2@daizhihong01 yngndzh2]$ rm 1234.txt

rm:是否刪除有寫保護的普通空文件 "1234.txt"y

[yngndzh2@daizhihong01 yngndzh2]$ rm -r 01

rm:是否刪除有寫保護的目錄 "01"y

[yngndzh2@daizhihong01 yngndzh2]$ ls  -l

總用量 0

也是能夠刪除yngndzh1建立的文件和目錄

以上實驗爲何普用戶沒有寫的權限,爲何可以刪除呢?

[yngndzh2@daizhihong01 yngndzh2]$ pwd

/tmp/yngndzh2

 [yngndzh2@daizhihong01 yngndzh2]$ ls -ld

drwxrwxrwx 2 yngndzh2 yngndzh2 6 2   5 21:37 .

這時因刪除的這個文件所在的目錄,有沒有寫權限而不是看刪除文件自己有沒有權限,而是看目錄是否有權限。第一個實驗就證實了加入特殊權限stick_bit以後,就不能刪除其它用戶的文件。

相關文章
相關標籤/搜索