Linux文件系统权限管理

最后都变了- 提交于 2020-03-11 18:12:12

一、权限对象

1、文件拥有者(owner)
文件拥有者,也称为文件的属主,由于Linux系统是一个多任务多用户的系统,因此会有很多人来使用这部主机,为了考虑每个人的隐私,文件所有者这个权限就尤为重要。
2、用户组(group)
群组是权限中最有用的功能之一,群组简单理解就是用户组,类似于我们公司的各个部门之间,或者学校的班级之间的划分,每一个班级就是一个群组,群组内的资源是共享的,群组之间是相互隔离的。
3、其他人(others)
对于非文件的拥有者,或者文件的所属组以外的人,我们称为其他人

二、权限类型

  • Linux权限基于UGO模型进行控制;U代表User,G代表Group,O代表Other;每一个文件的权限基于UGO进行
  • 设置 Linux的基本权限分为读、写、执行(r、w、x),可用数字4、2、1来表示

在这里插入图片描述

  • 属主:用户若是文件的主人,则匹配属主的权限,权限在文件的左三位,即第一个rwx
  • 属组:用户与属组在同 一个组,则匹配属组的权限,权限在文件的中三位,即第二个rwx
  • 其他:用户既不是属主也不是属组,则匹配其他的权限,权限在文件的右三位,即第三个rwx

三、r、w、x权限说明

1、对于文件而言

权限 说明
r 可获取文件的数据
w 可修改文件数据
x 可以将此文件运行为进程

2、对于目录而言

权限 说明
r 可以使用ls命令获取其下的所有文件列表
w 可修改此目录下的文件列表;即创建或删除文件
x 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息

四、文件权限判断逻辑

1、判断用户对文件的权限

前提条件:用户能够成功进入到文件所在的目录,即对操作的文件所在目录有x权限

  • 删除文件:看用户是否具备对目录的w权限
    (1)先判断用户是以什么身份删除文件,按照owner->group->other顺序进行匹配
    (2)若是目录的属主,目录权限的左三位有w权限,删除文件成功,无w权限,删除失败
    (3)若不是目录属主,但在目录的属组中,如果目录权限的中三位有w权限,则删除文件成功,无则失败
    (4)若不是目录属主,也不在目录的属组中,如果目录权限的右三位有w权限,则删除文件成功,无则失败
  • 创建文件:和用户删除文件判断逻辑一致
  • 修改文件:看用户是否具备对修改的文件的w权限
    (1)先判断用户是以什么身份修改文件,按照owner->group->other顺序进行匹配
    (2)若是文件的属主,文件权限的左三位有w权限,修改文件成功,无w权限,修改失败
    (3)若不是文件属主,但在文件的属组中,如果文件权限的中三位有w权限,则修改文件成功,无则失败
    (4)若不是文件属主,也不在文件的属组中,如果文件权限的右三位有w权限,则修改文件成功,无则失败

2、判断用户对目录的权限

前提条件:用户能够成功进入到目录所在的目录,即对操作的目录所在的目录有x权限

  • 删除目录:看用户是否具备对上一级目录的w权限
    (1)先判断用户是以什么身份删除文件,按照owner->group->other顺序进行匹配
    (2)若是上一级目录的属主,上一级目录权限的左三位有w权限,删除目录成功,无w权限,删除失败
    (3)若不是上一级目录属主,但在上一级目录的属组中,如果上一级目录权限的中三位有w权限,则删除目录成功,无则失败
    (4)若不是上一级目录属主,也不在上一级目录的属组中,如果上一级目录权限的右三位有w权限,则删除目录成功,无则失败
  • 创建目录:和用户删除目录判断逻辑一致(包括改名、改时间戳)
  • 修改目录(在目录下创建、删除文件):看用户是否具备对修改的目录的w权限,与上一级目录是否有w权限无关
    (1)先判断用户是以什么身份修改目录,按照owner->group->other顺序进行匹
    (2)若是目录的属主,目录权限的左三位有w权限,修改目录成功,无w权限,修改失败
    (3)若不是目录属主,但在目录的属组中,如果目录权限的中三位有w权限,则修改目录成功,无则失败
    (4)若不是目录属主,也不在目录的属组中,如果目录权限的右三位有w权限,则修改目录成功,无则失败

五、权限管理命令

1、chmod命令

三类用户:
u:属主
g:属组
o:其它
a: 所有

赋权表示法:直接操作一类用户的所有权限位rwx;
u=
g=
o=
a=
在这里插入图片描述
授权表示法:直接操作一类用户的一个权限位r,w,x;
u+,u-
g+,g-
o+,o-
a+,a-

-R, --recursive:递归修改

注意:用户仅能修改属主为自己的那些文件的权限

在这里插入图片描述

2、chown命令

修改问价的属主,一并修改属组
chown owner:group file
chown root file
chown :root file
-R:递归修改
在这里插入图片描述
3、chgrp
chgrp [option]… group file…

 	仅管理员可以修改文件的属主和属组

在这里插入图片描述
例:复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为jerry,并让属组对目录本身拥有写权限
在这里插入图片描述
在这里插入图片描述

六、进程安全上下文

进程对文件的访问权限应用模型

进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;
否则,就只能应用other的权限

Linux的进程安全上下文法则

启动进程的权限问题:
能否启动一个可执行程序文件作为一个进程PID,取决于此用户是否对这个文件有可执行权限x

例:能否将/bin/cat执行为一个进程,取决于用户是否对此文件有x权限
/bin/cat的owner,group,other都具备x权限,所以都可以将此文件启动为一个进程

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!