Linux第三周學習筆記(1)
2.20 特殊權限stick_bit
特殊權限stick_bit:意為防刪除位。文件是否可以被某一個用戶刪除,主要取決於該文件所在目錄是否對該用戶具有寫的權限。如果沒有寫的權限,則這個目錄下的所有文件都不能刪除同時也不能添加新的文件。
如果希望用戶能夠添加文件但是不能刪除該目錄下其他用戶的文件。則可以對父目錄增加stick_bit權限。設置該權限後,就算用戶對目錄具有寫的權限,也不能刪除其它用戶的文件。
---------------------------------------------------------------------------------------------
命令格式:
添加特殊權限stick_bit:chmod o+t /目錄/
去掉特殊權限stick_bit:chmod o-t /目錄/
---------------------------------------------------------------------------------------------
[root@daizhihong01 ~]# ls -ld /tmp/
drwxrwxrwt. 15 root root 4096 2月 5 20:10 /tmp/
/tmp/目錄的權限位有一個“t”這個就是特殊權限stick_bit,也叫防刪除位。
在/tmp/目錄下有很多的文件,/tmp/目錄下其它用戶的權限位是
-------------------------------------------------------------------------------------------
切換到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之後,就不能刪除其它用戶的文件。
Linux第三周學習筆記(1)