文章标题

来源:互联网 发布:在淘宝上买摩托车 编辑:程序博客网 时间:2024/06/07 03:06

2.18 特殊权限set_uid

  • set_uid :该权限针对二进制可执行文件,使文件在执行阶段(临时)具有文件所有者的权限。
    -以passwd 命令来说明
  • which passwd 查看它的绝对路径
    ls -l 查看passwd的权限
    这里写图片描述
    这里看到所有者的权限是rws ,它具有特殊权限set_uid。这样普通用户就可以自己更改自己的密码

  • 修改密码需要密码文件 /etc/shadow
    但是我们看到它是没有任何权限的
    这里写图片描述
    这样普通用户是不可能修改自己密码的,连root用户都没有权限。root可以授权可写权限,然后在去修改 但普通用户没有更改权限的权限。

  • 当普通用户被赋予特殊权限set_uid后,除了文件所有者外,所属组和其他用户执行带set_uid特殊权限的命令时,执行阶段会被赋予命令所有者的身份。
  • 整个系统中只有/usr/bin/passwd原始拥有这个的特殊权限
  • 文件授权set_uid权限
    例如: 普通用户在/root/目录是没有的,权限,那么就不能进入下/root/目录下去查看。
    这里写图片描述
    那么我们给ls命令设置set_uid权限,设置后执行命令就会临时拥有root用户的身份。
    这里写图片描述
    这里写图片描述
    /root/目录的权限是没有改变的。

  • 去掉set_uid权限
    chmod u-s /usr/bin/ls
    这里写图片描述
    再看它就不是红色显示了,因为我们去除了set_uid权限 ,那么我们普通用户也就失去了root的身份和权限 也就不能再查看/root/目录了
    这里写图片描述

  • chmod u=rws /usr/bin/ls
    这里写图片描述
    这里的s权限是大写的s, 是因为它没有x权限
    再添加x权限后就会变成小写的s.
    这里写图片描述

    这里写图片描述
    大写的s不受影响 s权限本身含有执行权限。
    目录可以设置set_uid权限,但是不会去执行 ,那么就没有任何意义。

2.19 特殊权限set_gid
- set_gid:该权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。在作用在文件上时,其功能和set_uid一样,它会使文件在执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
- 这里写图片描述
这里看到加了s权限后,它作用在了所属组的权限位上。
这里写图片描述
这里/root/所属组的权限 r-x 那么其他用户也就能查看了
-set_gid作用在目录上
这里写图片描述
这里我们先更改这个目录的所属组
这里写图片描述
这里看到所属组已经更改为user1.那在这个目录创建的文件的所属组也会是user1
这里写图片描述
创建子目录,它的所属组也是user1
这里写图片描述
去掉set_gid后,再次创建的子目录和文件就不会再是user1l
这里写图片描述


2.20 特殊权限stick_bit

  • stick_bit:可以理解为防删除位。文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件不能删除,同时也不能添加你的文件。如果希望用户可以添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。
  • 这里写图片描述
    rwt这里的t就是stick_bit 防删除位
    目录拥有777的权限 那么任何用户都有可写可执行的权限。user1用户的文件,user2用户可以查看 不能修改 不能删除

    • 如图
      这里写图片描述
      在文件中写点内容 在修改为777的权限
      这里写图片描述
      其他用户可以修改内容
      这里写图片描述
      其他用户是不能删除的。除了root用户
      这里写图片描述
      创建新目录
      权限777
      所有者user1
      所属组user1
      这里写图片描述

这里写图片描述
因为文件所在的目录为777 删除文件或者子目录不是看文件或者子目录的权限 而是看文件或者子目录所在目录的权限。没有添加stick_bit权限 那就可以修改 或着删除
这里写图片描述
这一小节看的头都大了呀


2.21 软链接文件 2.22 硬链接文件

  1. 软连接是建立在一个独立的文件,当读取这个连接文件时,它会把读取的行为转发到该文件所链接的文件上。类似Windows中的快捷方式
  2. 硬链接:当系统要读取一个文件时,会先读取inode信息,再根据它中的信息到块区域将数据取出来。而硬链接是直接再建立一个inode信息链接到文件放置的块区域,进行硬链接 ,文件内容不会变化,只是增加了一个指向这个文件的inode,不占用额外空间。2个限制 :
    (1)不能跨文件系统 因为inode table不同
    (2)不能链接目录
  3. 这里写图片描述
    使用/bin/ls 其实使用的是/usr/bin/ls
    这里写图片描述
    这里带有>的前面都是软链接
    当某命令使用了库文件
    所调用的名字是前面这个
    后面是它真正的文件名字 它也必须要存在
    做软链接可以节省空间
    举例:有一个文件A 做了软链接b ,b指向了A。 当读取b时,b就会把读取的动作转发到A上,这样就读取了A文件。删除A文件时,链接文件b不会被删除,再次读取b时,无法打开。然而删除b时,不会影响到A文件

  4. ln 命令 常用选项-s 加上就是软链接 不加就是硬链接