文件特殊权限

190 阅读2分钟

SetUID

  • 只有可以执行的二进制程序才能设定SUID权限
  • 命令执行者要对该程序拥有x执行权限
  • 命令执行者在执行该程序时获得该程序文件所有者的身份
    • 变身成为该文件的所有者(比如原来是root所有者,现在获得了root身份)
  • SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
    • 比如passwd命令,rws权限
  • 设定SetUID的方法
    • 4代表SUID
      • chmod 4755 文件名
      • chmod u+s 文件名
      • 755或者u-s 文件名即可去掉s权限
  • 危险的SetUID
    • 关键目录应严格控制写权限,比如"/","usr"等
    • 用户的密码设置要严格遵守密码三原则
    • 对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

SetGID

(针对文件的作用)

  • 只有可执行的二进制程序才能设置SGID权限
  • 命令执行者要对该程序拥有x(执行)权限
  • 命令执行在执行程序的时候,组身份升级为该程序文件的属组
  • SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
    • 比如locate

(针对目录的作用)

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

Sticky BIT

  • 粘着位目前只对目录有效
  • 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
  • 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件.一旦被赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件.
  • 1代表SBID
    • chmod 1755 目录名
    • chmod o+t 目录名
    • 755或者 0-t