特殊权限 set_uid


set_uid:

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_软链接

这里的s 就是set_uid 权限

 linux 下的passwd文件是允许普通用户修改自己的密码的 (/etc/shadow :密码文件)

set_uid 是让普通用户在执行此命令的时候,赋予普通用户临时 root权限,给一个文件设置uid,首先这个文件是二进制文件、可执行文件


怎么给一个文件授权set_uid权限

如:给ls 命令设置该权限

chmod u+s /usr/bin/ls

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_软链接_02

此时查看 ls -l /usr/bin/ls 可以看到 /usr/bin/ls 变成红色。同时在权限那里也有s权限


删除这个权限 chmod u+s /usr/bin/ls

chmod u+s /usr/bin/ls

0

一个普通能执行一个命令 主要还是要这个这个命令在其他用户那里拥有 x 执行权限,最后才能使用 set_uid来赋予临时root权限


        特殊权限 set_gid

set_gid 使文件执行阶段具有文件所有组的权限 ,使普通用户拥有所属组权限

如:

chmod g+s/usr/bin


特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_软链接_03

此时在所属组的那里,权限就有了s 权限

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

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_04

当我们给我们的目录 设置了set_gid 后,在这个目录下创建子目录和文件的时候,创建的子目录和文件的所属组就会随着我们父级目录所属组

(设置了set_gid的目录)保持一致

如:将目录234 (chmod g+s 234)设置set_gid后,我们再修改我们的所属组,chown :user 234 此时我们的所属组变成了user

当我们再次在 这个目录下创建子目录和文件的时候,创建的子目录和文件的所属组就会变成了user

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_05

特殊权限 stick_bit

文件是否可以被某个用户删除,主要取决于该文件在这个目录是否对该用户具有写权限。有写功能即可删除,否则反之!

stick_bit 防止别人删除我们自己的文件

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_06


rwt 也是具有x权限的

当我们的目录添加了一个 stick_bit权限,则我们在其他用户 的时候就不能删除这个文件和目录,但是可以修改。




          软链接文件


什么样的文件属于软连接?(window下的相当于快捷方式)

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_07

这里的bin 就是软连接文件 但是真时的bin 时/usr/bin


特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_软链接_08


ls也一样


软连接:在文件中存了一个另外一个文件的路径或者目录的路径,链接文件的大小和路径有关,路径越长文件越大

软连接文件有什么用?

1.可以节省空间

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_09

如:把/root/123/1.txt 放在/tmp/123/12/1.txt 如果复制的话 则会占据大空间,当我们原文件变化时需要再次复制

如果做成软链接则节省空间且同步

做成软链接格式:

ln -s 源文件 目标文件 (以绝对路径写全)

特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_ 文件_10


目录也可以做成软链接


特殊权限 set_uid、set_gid、stick_bit,软链接文件,硬链接文件_软链接_11

上面的都是相对路径的软连接


做软链接尽量用绝对路径


软链接实际应用

假如有一个目录/分区 ,空间快用完。如果一个进程、服务仍在这个目录/分区执行,则系统容易出问题

当我们磁盘/分区快满了,我们可以要写的文件放在一个磁盘空间大的分区。(但是这个文件的路径不能改变)


1.首先我们可以把 一直操作的文件[(在原磁盘数据量很大)->(源文件)] 先拷贝(cp)到另一个空间大的文件(目标文件)

2.删除源文件

3.立马做软链接  ln -s 目标文件(绝对路径) 源文件 

最后继续写内容只是写在目标文件下

这就是软链接的好处










硬链接文件

硬连接只针对文件操作,不能给目录做硬链接

ln 2.txt 2_heart.txt

 

含义:创建了一个文件,这个文件的ino号和另一个文件的ino 号一样,那么这两个文件互为硬链接文件

这两个不分彼此

因为我们硬链接的ino 是一样的,所有我们存储的数据是不会存储两份的。

当我们删除了硬链接的一个,它是不会出问题的,但是软链接不行,会失去指向。



硬链接的两个特性

文件不能跨分区做以链接

目录不能硬链接