Linux教程

Linux文件系统中的默认权限和隐藏权限

本文主要是介绍Linux文件系统中的默认权限和隐藏权限,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux文件系统中的默认权限和隐藏权限

默认权限

  • 通过umask指令设定当前用户创建的文件或者目录的默认权限,umask指令输出四位数字(加上-S可以按照rwx符号输出),后三位表示创建的文件和目录的rwx权限默认会减去这个值,第一位表示文件的特殊权限

文件的隐藏属性

  • linux文件具有隐藏属性:[ASacdistu],使用chattr来配置文件或者目录的隐藏属性,使用lsattr来展示文件或者目录的隐藏属性。

文件特殊权限


特殊权限分类


1. 特殊权限SetUID(s权限覆盖user权限的x,执行中获取所有者权限)

  • 前置条件:当前用户对该文件具备x权限

  • 现象:在前置条件下,某个二进制可执行文件的user权限x的位置被一个s覆盖

  • 出现该特殊权限表明:本s权限在执行的过程中会起效;由于具有s权限,当前用户在执行该文件的过程中将具有该程序文件的拥有者所具备的权限(也就是说在该程序的执行过程中当前用户可以访问文件所有者可以访问的所有其他文件)。当然,正因上述性质,s权限只能出现在二进制可执行文件上**。

  • 典型的一个例子就是普通用户可以通过passwd程序在/etc/shadow中去修改自己的密码,实际上普通用户对于/etc/shadow是没有写入权限的,只不过是他对passwd具有s权限,那么执行passwd的过程中就会临时具有root的权限,当然就可以读写/etc/shadow了。

  • 当前权限只能用于二进制文件


2. 特殊权限SetGID(s权限覆盖group权限的x,对于可执行文件在执行中获取拥有者权限,对于目录在其中新建的文件属于该目录的群组)

使用场景1
  • 前置条件:当前用户对该文件具备x权限

  • 现象:前置条件下,某个文件的group权限x的位置被一个s覆盖

  • 出现该特殊权限表明:当前用户在执行该文件的过程中将具有该程序文件所属群组的权限支持。

使用场景2
  • 前置条件:用户对于此目录具有r和x的权限(可以进入)

  • 现象:前置条件下,某个目录的group权限x的位置被一个s覆盖

  • 出现该特殊权限表明:当前用户在此目录下的有效群组会变成该目录所属的群组;当前用户如果在此目录下有w权限,那么新建的文件和目录的群组都会设定为该目录所属的群组。


3. 特殊权限StikyBit(t权限覆盖)

  • 前置条件:当前用户对该目录具备w和x权限(可以访问并且可以写入)

  • 现象:前置条件下,某个目录的others权限中的x被一个t覆盖

  • 出现该特殊权限表明:当前用户在该目录下只能修改或者删除自己创建的文件,属于其他所有者的文件不能修改和删除。一个例外是root用户可以修改或者删除任何用户的文件。


特殊权限的设定

  • 使用chmod设定特殊权限

  • 4,2,1分别表示SetUID,SetGID,StikyBit权限。也可以使用符号方式来添加特殊权限。

  • 需要用户自行注意特殊权限的前置条件。如果设定之后不满足前置条件,那么s和t分别会变为S和T,来提示用户该特殊权限因为前置条件不足没有生效。

这篇关于Linux文件系统中的默认权限和隐藏权限的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!