Linux文件系统上的特殊权限

  • 权限
    • r:可读
    • w:可写
    • x:可执行
    • user:属主权限
    • group:属组权限
    • other:其他
  • 安全上下文
    • 前提:进程由属主和属组,文件有属主和属组
    • 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
    • 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组
    • 进程访问文件时的权限,取决于进程的发起者
      • 进程的发起者,同文件的属主,则应用文件拥有属主权限
      • 进程的发起者,属于文件的属组,则应用文件拥有属组权限
      • 应用文件”其他”权限
  • SUID
    • 任何一个可执行程序文件能不能启动为进程,屈居于执行者对程序文件是否拥有执行权限
    • 启动为进程之后,其进程的属主为源程序文件的属主
    • 权限设定
      • chmod u+s FILE…
      • chmod u-s FILE…
  • SGID
    • 默认情况下,用户创建文件时,其属组为此用户所属的基本组
    • 一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
    • 权限设定
      • chmod g+s DIR…
      • chmod g-s DIR…
  • sticky
    • 对应一个多人可写的目录,如果设置了sticky,则每个用户只能删除自己的文件
    • 权限设定
      • chmod o+t DIR…
      • chmod o-t DIR…
  • 几个权限位映射
    • SUID:user,user占据属主的执行权限位
      • s:属主原本拥有x权限
      • S:属主原本没有x权限
    • SGID:group,group占据属组的执行权限位
      • s:属组原本拥有x权限
      • S:属组原本没有x权限
    • sticky:other,占据other的执行权限位
      • t:other原本拥有x权限
      • T:other原本没有x权限