首页 > 代码库 > linux文件系统下的特殊权限

linux文件系统下的特殊权限

    

SUID, SGID, Sticky

  1 权限
    r, w, x

    user, group, other

  2 安全上下文
    前提:进程有属主和属组;文件有属主和属组;
    (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;
    (2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组;
    (3) 进程访问文件时的权限,取决于进程的发起者:
    (a) 进程的发起者,同文件的属主:则应用文件属主权限;
    (b) 进程的发起者,属于文件的属组;则应用文件属组权限;
    (c) 应用文件“其它”权限;

  3 SUID
    (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限;
    (2) 启动为进程之后,其进程的属主为原程序文件的属主;

    权限设定:
      chmod u+s FILE...
      chmod u-s FILE...

  4 SGID
    默认情况下,用户创建文件时,其属组为此用户所属的基本组;
    一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组;

    权限设定:
      chmod g+s DIR...
      chmod g-s DIR...

  5 Sticky
    对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件;

      /tmp目录默认设置了sticky权限

    权限设定:
    chmod o+t DIR...
    chmod o-t DIR...

  也可以使用数字添加特殊权限:

    SUID=4,SGID=2,STICKY=1

   例如:chome 4755 file  给文件添加SUID权限

  几个权限位映射:
    SUID: user, 占据属主的执行权限位;
      s: 属主拥有x权限
      S:属主没有x权限
    SGID: group, 占据group的执行权限位;
      s: group拥有x权限
      S:group没有x权限
    Sticky: other, 占据ohter的执行权限位;
      t: other拥有x权限
      T:other没有x权限

linux文件系统下的特殊权限