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以后,就不能删除其它用户的文件。