一、安全上下文的概念

  1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
  2. 启动为进程之后,其进程属主为进程的发起者,属组为发起者属组
  3. 进程访问文件时的权限取决于进程的发起者
    • 进程的发起者,同文件的属主,则应用文件属主权限
    • 进程的发起者,属于文件的属组,则应用文件属组权限
    • 否则应用其他权限

二、特殊权限

1. 概念

  1. SUID:一个用户运行进程,取决于用户对执行文件是否有执行权,运行起来后,进程的属主是运行进程的用户,而有suid的文件,启动的进程属主为执行文件的属主
  2. SGID:默认情况下,用户新建文件时,这个文件的属组为用户的基本组,而一旦某目录加上了SGID权限,则新建的文件属组会继承父目录的属组,其缺点是会带来多人可写目录,这样的话目录属组中的成员对目录中的文件都可以互相删除,需粘滞位解决
  3. Sticky:粘至位权限,默认情况下,多人可写目录,用户可删除他人的文件,而粘滞位权限可解决这个问题,让每个用户仅能删除自己的文件

2. 赋权方法

  1. chmod u+s:增加SUID权限
  2. chmod g+s:增加SGID权限
  3. chmod o+t:增加粘滞位权限

3. 系统自带粘至位的目录

  • /tmp
  • /var/tmp

4.具有特殊权限的文件映射显示

  1. SUID:占据属主的执行权限位
    s:原有x
    S:没有x
  2. SGID:占据属组的执行权限位
    s:原有x
    S:没有x
  3. Stacky:占据其他执行权限位
    t:原有x
    T:没有x

5. 权限换算:特殊权限也可换算程8进制表示

Suid  Sgid  Sticky  十进制
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

三、权限相关的一些小细节

  1. 目录包含下列权限所代表的意义
    • r:拥有读权限,表示可使用ls命令获取其下的所有文件列表
    • w:用些写权限,表示可在此目录下修改(删除)文件
    • x:可cd至此目录中
  2. 文件:
    • r:文件拥有读权限,表示可读取文件的数据
    • w:文件拥有写权限,表示可修改数据
    • x:文件拥有执行权限,表示可将此文件运行为进程,但文件内容必须是可执行的

注:可否删除某个文件,取决于用户对这个文件的父目录是否有写权限