Linux:权限

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》


前言

本文是对Linux中文件和目录权限的总结。


一、Linux权限的管理

文件访问者的分类(身份)

  • 文件和文件目录的拥有者:u–User
  • 文件和文件目录的所以者所在的组的用户:g–Group
  • 其它用户:o–Others
    在这里插入图片描述
    如上图中test.c文件的拥有者是 liyun,所属组是 liyun(组长的名字),other就是处拥有者和所属组外的其它用户

文件类型和访问权限(事物属性)

要了解文件的事物属性,我们就要先简单的认识下图中各部分的含义。
在这里插入图片描述
在windows中文件已后缀区分文件类型,但在Linux文件类型与后缀无关(系统层面)
文件类型:
d:目录
-:普通文件
在这里插入图片描述
其中d目录的文件类型是d,test.c文件的类型是-
l:软链接(类似于windows的快捷方式)
在这里插入图片描述

b:快设备文件(列如硬盘,光驱等)

p:管道文件

c:字符设备文件(列如屏幕等串口设备)
在这里插入图片描述

s:套接口文件

基本权限:

  • 读(r / 4(八进制)):Read对文件而言,具有读取文件内容的权限;对目录而言,具有浏览该目录信息的权限
  • 写( w / 2):Wirte对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行( x / 1):Execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • " - " 表示不具有对应权限

在这里插入图片描述
对于上图test.c文件而言,拥有者liyun拥有读写权限,不具有执行权限;所属组liyun拥有读写权限,不具有执行权限;other具有读权限,不具有写,执行权限。

文件权限值的表示方式

  • 字符表示方法

在这里插入图片描述

  • 8进制数值表示方法
    在这里插入图片描述

文件访问权限的相关设置

只有文件的所有者和root用户才能修改文件的权限

  • chmod
  • 功能:设置文件的访问权限
  • 格式:chmod [参数] 权限 文件名
    常用选项:
    R:递归修改目录文件的权限
    先递归创建a1/a2/a3目录,这些目录的other都具有r(读)权限
    在这里插入图片描述
    执行chmod -R o-r a1
    在这里插入图片描述

chmod命令权限值的格式

用户表示符+ / - =权限字符
u:拥有者
g:所属组
o:other
a:所有用户
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予代号所表示的权限
在这里插入图片描述

三位八进制数字表示
依据下图:在这里插入图片描述
如将test.c文件other的权限改为r–,其它权限不变。可以执行chmod 664 test.c(第一个6表示拥有者的权限,第二个6表示所属组的权限,第三个4表示other的权限)
在这里插入图片描述


  • chown
  • 功能:修改文件的拥有者
  • 格式:chown [参数] 用户名 文件名

普通用户不能更改文件的拥有者,我们需要使用root来更改文件的拥有者 或 sudo 执行chown。但sudo指令有需要执行该命令的用户在信任列表中。
在这里插入图片描述
所以这里我们以root身份来传递。
在这里插入图片描述
chown也可以同时修改文件的拥有者 与 所属组
在这里插入图片描述


  • chgrp
  • 功能:修改文件或目录的所属组
  • 格式:chgrp [参数] 用户组名 文件名
  • 常用选项:-R 递归修改文件或目录的所属组

与chown指令一样,我们以root身份来执行。
在这里插入图片描述


在介绍umask指令前,我们是否对于目录和文件的起始权限感到疑惑,为什么文件的起始权限为664,目录的权限为775,这就与掩码有关联。

  • umask
  • 功能:查看或修改文件的掩码
    新建目录的默认权限是0777(八进制)
    新建文件的默认权限是0666
    但我们实际创建文件和目录的起始权限并不是0666(默认缺少x,普通文件不需要x)和0777,原因就在于创建文件和目录时还要受到umask的影响
    在这里插入图片描述
    这里umask的值是0002,也就是对other去掉w权限。
    假设默认权限是mask,则实际创建出来的文件权限是:mask & (~umask)
  • 格式:umask 权限值
  • 将现有的存取权限减去权限掩码后(也就没有的权限并不会增加),即可产生建立文件时预设权限。root的默认掩码是0022,普通用户的掩码是0002
    在这里插入图片描述
    这里我们暂时的将权限掩码设置为0005。也就是对other去掉r 和 x权限,那么创建文件时,other的默认权限因该是-w-,创建目录时,other的默认权限因该是-w-
    在这里插入图片描述

权限对文件的影响

没有r权限,不能查看文件内容
在这里插入图片描述
没有w权限,不能往文件中写入内容
在这里插入图片描述
没有x权限,则文件不能被执行,执行结果取决于文件内容
在这里插入图片描述

目录的权限

  • 可执行权限:如果目录没有可执行权限,则无法cd到目录中
    在这里插入图片描述
  • 可读权限:如果目录没有可读权限,则无法用ls等命令查看目录的内容
    在这里插入图片描述
  • 可写权限:如果目录没有可写权限,则无法再目录中创建文件,也无法再目录中删除文件
    在这里插入图片描述

粘滞位

根据我们对目录权限的理解,不难发现只要用户具有目录的w权限,用户就可以删除该目录下的文件,而不论用户是否具有这个文件的w权限。那么如果我们多个用户在一个共享目录下工作,如果别人删除了我创建的文件,那怎么办?这就有了粘滞位的概念。
当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能有root删除,该目录的所有者删除,该文件的拥有者删除。

在这里插入图片描述
在这里插入图片描述


总结

以上就是我对于Linux中文件和目录权限的总结。感谢支持!!!
在这里插入图片描述

  • 53
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 49
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水月梦镜花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值