码迷,mamicode.com
首页 > 系统相关 > 详细

Linux第三周学习笔记(1)

时间:2018-02-05 23:28:33      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:权限   切换用户   超级用户   stick_bit   mil   ext   indent   格式   工程   

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/目录下其它用户的权限位是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之后,就不能删除其它用户的文件。


Linux第三周学习笔记(1)

标签:权限   切换用户   超级用户   stick_bit   mil   ext   indent   格式   工程   

原文地址:http://blog.51cto.com/13577820/2069185

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!