Linux文件系统上的特殊权限

Linux文件系统上的特殊权限

  • SUID, SGID, Sticky
  • 三种常用权限:r, w, x user, group, other
  • 安全上下文
    前提:进程有属主和属组;文件有属主和属组
    (1) 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有 执行权限
    (2) 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
    (3) 进程访问文件时的权限,取决于进程的发起者
           (a) 进程的发起者,同文件的属主:则应用文件属主权限
           (b) 进程的发起者,属于文件属组;则应用文件属组权限
           (c) 应用文件“其它”权限
可执行文件上SUID权限
  • 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有 执行权限
  • 启动为进程之后,其进程的属主为原程序文件的属主
  • SUID只对二进制可执行程序有效
  • SUID设置在目录上无意义
  • 权限设定:
    chmod u+s FILE...
    chmod u-s FILE...
可执行文件上SGID权限
  • 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有 8 执行权限
  • 启动为进程之后,其进程的属组为原程序文件的属组
  • 权限设定:
    chmod g+s FILE...
    chmod g-s FILE...
目录上的SGID权限
  • 默认情况下,用户创建文件时,其属组为此用户所属的主组
  • 一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件 所属的组为此目录的属组
  • 通常用于创建一个协作目录
  • 权限设定:
    chmod g+s DIR...
    chmod g-s DIR...
Sticky 位
  • 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限 或拥有权
  • 在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
  • sticky 设置在文件上无意义 *权限设定:
    chmod o+t DIR...
    chmod o-t DIR...
  • 例如:
    ls -ld /tmp drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp
特殊权限数字法

SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

  • chmod 4777 /tmp/a.txt
权限位映射
  • SUID: user,占据属主的执行权限位
    s:属主拥有x权限
    S:属主没有x权限
  • SGID: group,占据属组的执行权限位
    s: group拥有x权限
    S:group没有x权限
  • Sticky: other,占据other的执行权限位
    t:other拥有x权限
    T:other没有x权限
设定文件特定属性
    • Linux文件系统上的特殊权限chattr +i 不能删除,改名,更改
    • chattr +a 只能追加内容
    • lsattr 显示特定属性
posted @ 2018-09-29 20:22  AloneSea  阅读(538)  评论(0编辑  收藏  举报