八、linux文件系统上的特殊权限 SUID 、GUID、Sticky
安全上下文
前提:进程有属主和属组,文件有属主和属组
- 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
- 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组
- 进程访问文件时的权限,取决于进程的发起者
- 进程的发起者,同文件属主,则应用文件属主权限
- 进程的发起者,属于文件的属组,则应用文件属组权限
- 应用文件“其它”权限
SUID 提权
打破了安全上下文规则
- 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
- 启动为进程之后,其进程的属主为原程序文件的属主:(进程的属组没有太大意义)
权限设定:
chmod u+s FILENAME
chmod u-s FILENAME
SGID
默认情况下,用户创建文件时,其属组为此用户所属的基本组;
一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
权限设定
chmod g+s DIR...
chmod g-s DIR...
一个用户能不能删除于该文件,取决于该文件所在目录是否有写权限
Sticky 粘滞位
对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除自己的文件
权限设定:
chmod o+t DIR...
chmod o-t DIR...
默认情况/tmp目录设置了 -t权限
SUID SGID STICKY
0 0 0
...
1 1 1
chmod 4777 /tmp/a.txt :代表特殊权限位置,该4代表具有SUID权限
注:
SUID : user占据属主的执行权限位
s : 属主拥有x权限
S:属主没有x权限
GUID : group ,占据属组的执行权限位
s : group拥有x权限
S:group没有x权限
Sticky : other,占据其它的执行权限位
t : other 拥有x权限
T:other 没有x权限
人的思维,观点是一直都会进化的。如果现在的思维,观点看法;和十年前的一模一样的话。那就可以说,你这十年是白活的。