2.18 特殊权限set_uid

2.19 特殊权限set_gid

2.20 特殊权限stick_bit

2.21 软链接文件

2.22 硬连接文件


2.18 特殊权限set_uid

passwd 有setuid 权限

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid

s 是set_uid的权限

更改密码的文件

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_02

即使是000权限,root 也可以更改这个文件

passwd 有setuid 权限  当普通用户执行该命令的时候,就会临时拥有root用户的身份

给用户设置uid 前提是 这个文件是 二进制文件 ,而且是一个可执行文件

怎么给一个文件 设置setuid 权限

打开另一个终端 登录aming 用户

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_03

去第一个终端 设置set uid 权限

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_04

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_05

去掉s 权限 加上大S 权限

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_06

小s 和大S 取决于 用户本身有没有执行x权限

2.19 set_gid 权限

先把之前的 setuid权限 去掉    

给组加上s  setgid 权限

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_07

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_08

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_09

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_10

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_11

总结

set_gid 权限的作用     不仅可以作用在文件 ,也可以作用在目录上

当作用在文件 和 set uid 作用是类似的,可以让执行这个文件的普通的用户 临时拥有所属组的身份

当作用在目录上的时候,当你创建子目录 或者 子文件,创建的 子目录 和子文件的所属组 和 该目录的所属组保持一致

2.20 stick_bit

stick_bit 作用是就是防止别人删除自己的文件 (root用户除外)

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_12

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_13

这个t 是防删除位

在另一个终端下创建一个文件aming

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_14

对aming 文件修改

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_15

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_16

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_17

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_18

再切到1终端

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_19

是可以更改文件内容的

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_20

但是不允许删除aming用户的 创建的文件

这个权限叫防删除位

只有有权限的人 root 用户可以删除,其他用户不可能删除

stickbit 防止别人删除自己的文件  root除外

再在用户user1 下面 创建一个目录 user1 改权限为777

777权限意味着 任何用户都可以去写读 执行

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_21

再切换到aming用户下在user1 目录下    可以  创建目录 文件

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_22

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_23

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_24

删除的文件 所在的目录 有没有写权限,而不是看删除的五年级本身的权限

user1 目录下面有1.txt 文件

要想删除 1.txt, 不是看1.txt 的权限

看的是1.txt 所在目录的权限

所在目录 是user1 user1 的权限是777  777是任何人都可以写

2.21 软链接文件

软链接

软链接 类似于Windows 的快捷方式

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_25

这个/bin 真正是在usr/bin 下面

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_26

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_27

这里/bin/ls  =   /usr/bin/ls

在这个文件下 软链接文件比较多

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_28

软链接可以节省空间

也可以跨分区

把/tmp/yum.log 做个软链接 放到  /root/111/目录下

ln -s    左边原文件,真正存在的文件 空间比较大   后面的才是 软链接文件  

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_29

软链接也可以针对目录

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_30

同一个目录下   做一个相对路径 软链接   仅仅是在当前目录下 ,

会有一些弊端,原文件不存在 被移走了,或者文件、目录改名字  ,就会导致 做的这个软链接出现问题

所以,做软链接,尽量使用绝对路径

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_31

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_32

df -h  查看磁盘分区

举例:当有一个服务 在/boot下的一个aming 服务不停的在 /boot 下产生文件 aming.log  这个

aming.log 文件在一直的增大,导致/boot 快用完了

现在为了不让/boot磁盘空间被占满 ,可以采取一个办法,给/boot/aming.log 做一个软链接文件

1,首先把/boot/aming.log  拷贝到 根目录下的aming.log下

cp /boot/aming.log /aming.log 下

2 再删掉/boot/aming.log  (占空间大,删掉)

rm /boot/aming.log

3给 aming.log 软链接 到 目录/boot/aming.log下

ln -s /aming.log /boot/aming.log

这样这个服务在写日志的时候,因为靠路径去找/boot/aming.log,实际上写到/aming.log下

2.22 硬连接文件

硬链接

硬链接不支持对目录做硬链接

只支持对文件做

对1.txt 做一个硬链接  1_heard.txt

对1.txt 做一个软连接  1_sorft.txt

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_33

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_34

有俩个文件使用了同一个inode号

硬链接 特性:创建立一个文件 和 另一个文件node号一样 ,这个俩个文件  相互为硬链接

不管谁是原 谁是目标,都一样

软链接 不可以删除 ,把原删了

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_特殊权限_35

受影响了

但是硬链接没事,

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_36

其实就是多一个文件指向这个inode 号

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_37

硬链接 不可以对目录做硬链接

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_uid_38

跨设备也不行

2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件_set_39

总结,硬链接

可以对文件做硬链接 ,不可以对目录做

不可以跨分区,硬链接可以删除 ,因为还有其他的文件 使用这个inode号

好比是一张皮,一个文件的皮,这个皮有多张,每张皮 都指向同一个inode ,可以删掉 、扔掉没关系,但是不可以全部都删掉,必须留一张皮,