• 6.7


    1、特殊权限

      set_uid

      通过which查看passwd的绝对路径,然后通过ls -l查看绝对路径的信息,可以看到该路径的权限如下:

      其中s权限就是set_uid的权限。用户在执行passwd命令修改密码时,会对shadow文件进行修改,因为shadow密码文件的权限为000,普通用户无法修改文件,所以只能使用set_uid权限,让用户在执行passwd命令的瞬间拥有对shadow文件的写权限:

      在系统中只有passwd命令拥有set_uid权限

      可以通过命令“chmod u+s”命令给一个命令增加s权限,如下给ls命令怎么s权限:

      在默认情况下,普通用户无法通过ls命令查看/root/文件夹的信息,但是当给ls命令增加s权限后,普通用户可以通过ls命令查看/root/文件夹:

      通过执行命令“chmod u=rws”可以给命令增加s权限,但是由于缺少x权限,所以此时的命令权限为S:

      目录也可以增加s权限,但是没有意义

       

      set_gid

      作用在文件上时与set_uid功能比较像,作用在组上,执行“chmod g+s”命令实现,使得普通用户在使用该命令时,临时拥有所属组的权限:

      作用在目录上时,并将所属组修改为user1,结果如下:

      在该目录下创建文件,目录下的子文件的所属组也是user1:

      在文件夹没有s权限时,创建子文件的权限为root:

      在文件夹添加了set_gid权限后,当在文件下创建子目录或子文件时,子目录和子文件的所属组与该文件的所属组保持一致

      

      stick_bit

      系统中/tmp/文件夹拥有stick_bit权限,其普通用户权限显示为rwt,防止用户创建的文件被其他用户删除:

      如使用普通用户在tmp目录下创建的一个文件,使用其他普通用户时可以对文件进行修改,但是无法对文件进行删除(root用户可以删除):

      使用普通用户在创建一个权限为777的文件夹,其他的普通用户可以执行touch、mldir命令,由于所在的目录为777,虽然文件本身的权限为775,但是其他用户也可以进行删除:

      

     2、软链接文件

      类似于windows的快捷方式,如下图中/bin文件就是一个软链接文件,其真实路径为/usr/bin,使用的/bin/ls命令的真实命令是/usr/bin/ls:

      在/lib64/文件中存的软链接文件比较多:

      执行“ln -s 源文件 目标文件”创建软链接,如下,将/tmp/yum.log文件做一个软链接到/root/111/yum.log:

      软链接也可以连接目录:

      当源目录和软链接目录在同一目录下时,通过“ls -l”查看到的软链接显示的是相对路径:

      但是当软链接文件路径发生变化时,软链接文件会失效,所以建议尽量使用绝对路径:

      应用场景:系统中存在一服务“aming”,此服务一直在写/boot/aming.log,而且此文件很大,几乎将磁盘空间资源占尽,为了避免磁盘被写满,将/boot/aming.log放在其他目录下,但是由于aming这个服务需要,不能讲/boot/aming.log移动到其他分区,因此可以通过先将/boot/aming.log复制到根目录下/aming.log,再讲/boot/aming.log删除,然后执行ln -s /aming.log /boot/aming.log,将/aming.log软连接到/boot/aming.log,这样aming这个服务依然会将日志写到/boot/aming.log,但由于/boot/aming.log是/aming.log的软链接文件,所以其实是写到/aming.log中,这样就解决了空间存储资源不足的情况

      3、硬链接文件

      硬链接:创建了一个文件和另一个文件的iNode号相同,那么这两个文件相互为硬链接文件 

      第二列表示有几个文件使用了相同的iNode号:

      不支持对目录做硬链接,只支持对文件做硬链接,执行“ln 源文件 硬链接文件”命令来给一个文件做硬链接,从下图可以看出,硬链接文件和源文件的iNode号相同,软链接文件和源文件的iNode号不同:

      当删除源文件时,软链接失效,而硬链接文件不受影响:

      在linux系统中,真正存储文件信息的为iNode号,通过“ls -i”可以查看iNode号: 

      不能对目录做硬链接:

      不能跨分区做硬链接,因为两个分区可能存在相同iNode号文件:

  • 相关阅读:
    linux一切皆文件之tcp socket描述符(三)
    linux一切皆文件之Unix domain socket描述符(二)
    linux一切皆文件之文件描述符(一)
    k8s之使用secret获取私有仓库镜像
    https、ssl、tls协议学习
    k8s网络之calico学习
    泛型的原理、应用、约束、缓存
    C#中Unity对象的注册方式与生命周期解析
    监听EF执行的sql语句及状态
    递归一个List<T>,可自己根据需要改造为通用型。
  • 原文地址:https://www.cnblogs.com/w494129131/p/9147605.html
Copyright © 2020-2023  润新知