当前位置 : 主页 > 编程语言 > java >

权限管理 —— 文件特殊权限

来源:互联网 收集:自由互联 发布时间:2022-06-23
SetUID SetUID 的功能 只有执行的二进制程序才能设定 SUID 权限 命令执行者要对该程序拥有 x 权限 命令执行者在执行该程序时获得该程序文件属主的身份。 SetUID 权限只在该程序执行过程中

SetUID

  • SetUID 的功能
    • 只有执行的二进制程序才能设定 SUID 权限
    • 命令执行者要对该程序拥有 x 权限
    • 命令执行者在执行该程序时获得该程序文件属主的身份。
    • SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。
      权限管理 —— 文件特殊权限_执行过程
      passwd 所有者拥有 SetUID 权限,普通用户在执行 passwd 时,暂时行使 root 权限的功能,普通用户可以修改自己的密码。
      cat 命令没有 SetUID 权限,所以普通用户不能查看 /etc/shadow 文件内容。
      权限管理 —— 文件特殊权限_文件名_02
  • 设定 SetUID 的方法
    4 代表 SUID
    在权限码前面加上 (4,2,1)—— SetUID、SetGID、Sticky BIT
  • chmod 4755 文件名
    或者
    chmod u+s 文件名
  • 取消 SetUID 的方法
  • chmod 777 文件名 # 或是其他三位数字
    或者
    chmod u-s 文件名
  • 危险的 SetUID
    关键目录应严格控制写权限。
    用户的密码设置要严格遵守密码三原则。
    对系统中默认应该具有SetUID权限的文件做一列表,定时检查有没有之外的文件被设置了 SetUID 权限。
  • SetGID

  • SetGID 针对二进制文件的作用
    只有可执行的二进制程序才能设置SGID权限
    命令执行者要对该程序拥有x权限
    命令执行在执行程序的时候,组身份升级为该程序文件的属组
    SetGID 权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
  • 权限管理 —— 文件特殊权限_执行过程_03
    /usr/bin/locate 是可执行二进制程序,可以赋予SGID
    执行用户lamp对/usr/bin/locate命令拥有执行权限
    执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db 数据库拥有 r 权限,所以普通用户可以使用locate命令查询mlocate.db数据库
    命令结束,lamp用户的组身份返回为lamp组

  • SetGID针对目录的作用
    普通用户必须对此目录拥有r和x权限,才能进入此目录
    普通用户在此目录中的有效组会变成此目录的属组
    若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
  • 取消 SetGID
  • chmod 755 文件名
    或者
    chmod g-s 文件名
  • 设定 SetGID
    2 代表 SetGID
  • chmod 2755 文件名
    或者
    chmod g+s 文件名

    Sticky BIT

    只能是 root 用户设置。

  • SBIT 黏着位作用
    黏着位目前只对目录有效
    普通用户对该目录拥有 w 和 x 权限,即普通用户可以在此目录拥有写入权限。
    如果没有黏着位,因为普通用户拥有 w 权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了黏着位,除了 root 可以删除所有文件,普通用户就算拥有了 w 权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。
  • 设置黏着位
  • chmod 1755 目录名
    chmod o+t 目录名
  • 取消黏着位
  • chmod 755 目录名
    chomod o-t 目录名


    上一篇:权限管理 —— ACL权限
    下一篇:没有了
    网友评论