文件特殊权限

短命女 2022-01-13 12:39 367阅读 0赞

文章目录

  • 一、SetUID
  • 二、Sticky BIT

一、SetUID

SetUID 也叫 SUID,它的特点如下:

  • 只有可以执行的二进制程序才能设定 SUID 权限
  • 命令执行者要对该程序拥有 x(执行)权限
  • 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  • SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

SetUID 的典型应用场景是 passwd 命令。普通用户可以用 passwd 命令修改自己的密码,修改密码实际上是修改 /etc/shadow 文件,而该文件的权限是 000,那么这时就需要普通用户暂时获得 root 用户的身份,来修改 /etc/shadow 文件,以达到修改密码的目的。我们来看一下 passwd 命令的权限:

在这里插入图片描述

箭头指向的部分,出现了一个 s,这就代表 passwd 命令具有 SUID 权限。

设定 SUID 权限的方法:

  1. chmod 4755 文件名 #755是文件的普通权限,4代表文件的SUID权限
  2. #或者用下面这个命令:
  3. chmod u+s 文件名

取消 SUID 权限的方法:

  1. chmod 755 文件名 #755并不是固定的,具体是多少取决于你想为该文件赋予什么权限
  2. #或者:
  3. chmod u-s 文件名

SUID 权限极其危险,若使用不当,可能会给系统带来灭顶之灾。举个例子,若你给 vim 命令设定了 SUID 权限,那么普通用户在使用 vim 的时候就会变成 root 用户的身份,那他可以用 vim 修改任何系统配置文件,比如,修改 /etc/passwd 文件,把自己也变成超级用户。这无疑是很可怕的。

二、Sticky BIT

因为 sticky 在英文里面是「粘着」的意思,而 bit 是「位」的意思,所以 Sticky BIT 也叫做粘着位。

  • 粘着位目前只对目录有效
  • 普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录拥有写入权限
  • 如果没有粘着位,因为普通用户拥有 w 权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了 root 可以删除所有文件,普通用户就算拥有 w 权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件

典型如 /tmp/,任何人都可以在这个目录下进行读写,但是只能删除自己创建的目录或文件。

在这里插入图片描述

设置粘着位:

  1. chmod 1755 目录名
  2. chmod o+t 目录名

取消粘着位:

  1. chmod 777 目录名
  2. chmod o-t 目录名

发表评论

表情:
评论列表 (有 0 条评论,367人围观)

还没有评论,来说两句吧...

相关阅读

    相关 文件特殊权限

    1. SetUID 只有可以执行的二进制文件才能设定SUID权限。 命令的执行者要对该可执行文件拥有x(执行)权限。 命令的执行者在执行该文件时,身份会

    相关 特殊权限管理

    用户在执行进程命令时,需要调用一个属主和属组是用户本身的 `bash` 进程,同时对应 一个属主和属组是 `root` 的文件,在执行时一其他用户的身份执行命

    相关 特殊权限

    SUID 谈到SUID不得不说进程的安全上下文,那么何为进程的安全上下文?在我看来,进程的安全上下文应该分成上文和下文。 我们先来谈谈进程安全的上文,我们都明白,用户有