【Linux】目录和文件的权限意义

        现在我们知道了Linux系统内文件的三种身份(拥有者、用户组与其他人),知道每种身份都有三种权限(rwx),也知道能够使用chown、chgrp、chmod修改这些权限与属性,当然,利用IS-l去查看文件也没问题。

        前面也谈到了这些文件权限对于数据安全的重要性。那么,这些文件权限对于一般文件与目录文件有何不同呢?有大大的不同。

1.权限对文件的重要性

文件是实际含有数据的地方,包括一般文本文件、数据库文件、二进制可执行文件(binary
program)等。

因此,权限对于文件来说,它的意义是这样的:

  • r(read):可读取此文件的实际内容,如读取文本文件的文字内容等;
  • w(write):可以编辑、新增或是修改该文件的内容(但不含删除该文件);
  • ×(execute):该文件具有可以被系统执行的权限。

那个可读(r)代表读取文件内容是还好了解,那么可执行(x)?

        这里你就必须要小心。因为在Windows下面一个文件是否具有执行的能力是借由扩展名来判断的,例如:exe、.bat、.com等,但是在Linux下面,我们的文件是否能被执行,则是借由是否具有【x】这个权限来决定,跟文件名是没有绝对的关系的。

        至于最后一个w这个权限?当你对一个文件具有w权限时,你可以具有写入、编辑、新增、修改文件内容的权限,但并不具备有删除该文件本身的权限。对于文件的rwx来说,主要都是针对文件的内容而言,与文件名的存在与否没有关系,因为文件记录的是实际的数据嘛。

2.权限对目录的重要性

        文件是存放实际数据的所在,那么目录主要是存储什么?

        目录主要的内容在记录文件名列表,文件名与目录有强烈的关联。所以如果是针对目录时,那个r、w、x对目录是什么意义呢?

  • r( read contents in directory)

表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据,所以你就可以利用Is这个命令将该目录的内容列表显示出来。

  • w( modify contents of directory )

这个可写入的权限对目录来说,是很了不起的,因为它表示你具有改动该目录结构列表的权限,也就是下面这些权限:

  • 建立新的文件与目录;
  • 删除已经存在的文件与目录(不论该文件的权限是什么);
  • 将已存在的文件或目录进行更名;
  • 移动该目录内的文件、目录位置;

总之,目录的w权限就与该目录下面的文件名的变动有关。

  •  x( access directory)

咦,目录的执行权限有啥用途?目录只是记录文件名而已,总不能拿来执行吧?

        没错,目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途,所谓的工作目录(work directory)就是你目前所在的目录。

        举例来说,当你登录Linux时,你所在的家目录就是你当前的工作目录,而变换目录的命令是【cd】( change directory )。

上面的东西这么说,太枯燥了,有没有清晰一点的说明?好,让我们来思考一下人类社会使用的
东西好了。

现在假设文件是一堆文件盒,所以你可能可以在上面写/改一些数据,而目录是一堆抽屉。因此你可以将文件盒分类放置到不同的抽屉里面,因此抽屉最大的目的是拿出/放入文件盒。现在让我们汇整一下内容:

组件内容替代对象rwx
文件详细数据data文件夹读到文件内容修改文件内容执行文件内容
目录文件名可分类抽屉读到文件名修改文件名进入该目录的权限(key)

根据上述的分析,你可以看到,对一般文件来说,rwx主要是针对文件的内容来设计权限,对录来说,rwx则是针对目录内的文件名列表来设计权限。

其中最有趣的大概就属目录的x权限了,文件名怎么执行?

没道理嘛。其实这个x权限设计,就相当于该目录——也就是该抽屉的“钥匙”,没有钥匙你怎么能够打开抽屉?对吧!

3.举例说明

大致的目录权限概念是这样,下面我们来看几个范例,让你了解一下啥是目录的权限。
有个目录的权限如下所示:

drwxr--r-- 3 root root 4096 Jun 25 08:35 .ssh

        系统有个账号名称为vbird,这个账号并没有支持root用户组,请问vbird对这个目录有何权限?是否可切换到此目录中?

        答:vbird在这里属于其他人,对此目录仅具有r的权限,因此vbird可以查询此目录下的文件名列表,因为vbird不具有x的权限,亦即vbird没有这个抽屉的钥匙,因此vbird并不能切换到此目录内——即不能打开。(相当重要的概念)

        上面这个例题中因为vbird具有r的权限,因为是r乍看之下好像就具有可以进入此目录的权限其实那是错的。能不能进入某一个目录,只与该目录的x权限有关。此外,工作目录对于命令的执行是非常重要的,如果你在某目录下不具有x的权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何命令,即使你具有该目录的r或w的权限。

        很多朋友在搭建网站的时候都会卡在一些权限的设置上,它们开放目录数据给因特网的任何人来浏览,却只开放r的权限,如上面的范例所示那样,那样的结果就是导致网站服务器软件无法到该目录下读取文件(最多只能看到文件名),最终用户总是无法正确地查看到文件的内容(显示权限不足)。

        要注意:要开放目录给任何人浏览时,应该至少也要给予r及×的权限,但w权限不可随便给,为什么w不能随便给,我们来看下一个例子。

        假设有个账号名称为dmtsai,它的家目录在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。若在此目录下有个名为the_root.data的文件,该文件的权限如下:

-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data

请问dmtsai对此文件的权限是什么?可否删除此文件?

       答:如上所示,由于dmtsai 对此文件来说是others的身份,因此这个文件它无法读、无法编辑也无法执行,也就是说,它无法变动这个文件的内容。

        但是由于这个文件在它的家目录下,它在此目录下具有rwx的完整权限,因此对于the_root.data这个文件名来说,它是能够删除的。结论就是,dmtsai 这个用户能够删除the_root.data这个文件。

上述的例子解释是这样的,

        假设有个莫名其妙的人,拿着一个完全密封的文件盒放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个文件盒的内部数据(对文件来说,你没有权限)。

        但是因为这个文件盒是放在你的抽屉中,你当然可以在这个抽屉中拿出/放入任何数据(对目录来说,你具有所有权限)。

        所以,情况就是:你打开抽屉、拿出这个没办法看到的文件盒、将它丢到走廊上的垃圾桶,搞定了(顺利删除)。

        还是看不太懂?没关系,我们下面就来设计一个练习,让你实际玩玩看,应该就能够比较明白了。不过,由于很多命令我们还没有教,所以下面的命令有的先了解即可,详细的命令用法我们会在后面继续介绍。

  • 先用root的身份建立所需要的文件与目录环境

我们用root的身份在所有人都可以工作的/tmp目录中建立一个名为testing的目录,该目录的权限为744且目录拥有者为root。另外,在testing目录下在建立一个空文件,文件名亦为testing。

仔细看一下,目录的权限是744,且所属用户组与使用者均是 root。

那么在这样的情況下面,一般身份使用者对这个目录/文件的权限是什么?

  • 一般用户的读写权限是什么?观察中

在上面的例子中,虽然目录是744的权限设置,一般用户应该能有r的权限,但这样的权限用户能做啥事?

由于我的系统中含有一个名为bcq_113的账户,请再开另外一个终端,使用bcq_113登录来操作下面的任务。


虽然有告知权限不足,但因为具有r的权限可以查询文件名,由于权限不足(没有x),所以会有一堆问号。

因为不具有x,所以当然没有进入的权限,有没有联想到前面的权限说明?

  • 如果该目录属于用户本身,会有什么状况?

        上面的练习我们知道了只有,确实可以让用户读取目录的文件名列表,不过详细的信息却还是读不到,同时也不能将该目录变成工作目录(用cd进入该目录之意)

        那如果我们让该目录变成用户的,那么用户在这个目录下面是否能够删除文件?下面的练习做做看:

1.先用root的身份来搞定/tmp/testing的属性、权限设置

2.再用dmtsai的账号来处理一下/tmp/testing/testing这个文件看看。



竟然可以删除,这样理解了吗?

        通过上面这个简单的步骤,你就可以清楚地知道,x在目录当中是与能否进入该目录有关,至于那个w则具有相当重要的权限,因为它可以让用户删除、更新、新建文件或目录,是个很重要的参数,这样可以理解了吗?

3.1.用户操作功能与权限

刚刚讲这样如果你还是搞不懂,没关系,我们来处理个特殊的案例。假设两个文件名,分别是下
面这样:

  • /dir1/file1
  • /dir2

假设你现在在系统使用bcq_113这个账号,那么这个账号针对/dir1、/dir1/file1、/dir2这三个文件名来说,分别需要哪些最小的权限才能完成各项任务?我汇整如下,如果你看得懂,恭喜你,如果你看不懂,没关系,未来再来继续学。

操作/dir1/dir1/file/dir2重点
读取file1内容xr-要能够进入/dir1才能读到里面的文件数据
修改file1内容xrw-要进入/dir1且修改file才行
执行file1内容xrx-能够进入/dir1且 file1能运行才行
删除file1文件wx--能够进入/dir1且具有目录修改的权限即可
将file1复制到/dir2xrwx要能读file1且能修改/dir2内的数据

你可能会问,上面的表格当中,很多时候/dir1都不必有r,为啥?

        我们知道/dir1是个目录,也是个抽屉。那个抽屉的r代表“这个抽屉里面有灯光”,所以你能看到的抽屉内的所有文件盒名称(非内容)。

但你已经知道里面的文件盒放在那个地方,那有没有灯光有区别?你还是可以摸黑拿到该文件盒的,对吧!因此,上面很多操作中,你只要具有x即可,r是非必备的,只是没r的话,使用[tab]时,它就无法自动帮你补齐文件名了,这样理解了吗?

看了上面这个表格,你应该会觉得很可怕。因为要读一个文件时,你得要具有这个文件所在目录的x权限才行。所以,通常要开放的目录,至少会具备rx这两个权限,现在你知道为啥了吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770473.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文了解“大数据招商思维”,读懂什么是大数据招商!

近年来,随着大数据及人工智能等新一代信息技术的快速发展,数据作为重要的资源和资产,成为推动经济发展的核心驱动力,广泛应用于各个领域,深刻的改变着我们的生产和生活方式。那么对于“招商引资”来说,大数…

超级加密狗——CBS(赛博锁)

智能终端设备安全现状: 随着网络和智能终端普及,云管端的智能物联应用越来越多,如何保证云端平台安全,以及各种智能终端(含智能仪器,车载终端、智能摄像头、工控机、网关路由器、智能设备、 IoT设备等&…

3D模型格式转换工具HOOPS Exchange如何实现对PRC文档的支持?

随着三维模型在各个行业中的应用越来越广泛,高效、准确的3D模型格式转换工具变得尤为重要。在众多工具中,HOOPS Exchange因其强大的功能和广泛的格式支持赢得了用户的青睐。本文将详细探讨HOOPS Exchange如何实现对PRC(Product Representatio…

XLSX + LuckySheet + LuckyExcel实现前端的excel预览

文章目录 功能简介简单代码实现效果参考 功能简介 通过LuckyExcel的transformExcelToLucky方法, 我们可以把一个文件直接转成LuckySheet需要的json字符串, 之后我们就可以用LuckySheet预览excelLuckyExcel只能解析xlsx格式的excel文件,因此对…

封装stater时配置导入配置类提示功能

提示功能如下 使用注解导入配置属性时添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

Element中的选择器组件Select (一级选择组件el-select)

简述&#xff1a;在 Element UI 中&#xff0c;ElSelect&#xff08;或简称为 Select&#xff09;是一个非常常用的选择器组件&#xff0c;它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…

为什么说牛企查查企业超好用?

步入职场的职场人士&#xff0c;经济相关专业的学生&#xff0c;都有查企业的需求&#xff0c;市面上查企业的软件平台那么多&#xff0c;每个功能都不怎么一样。 有的便宜&#xff0c;但是信息不全。有的信息还可以&#xff0c;但是会员费又很贵&#xff0c;让我这个打工人没…

垂直领域大模型的机遇与挑战:从构建到应用

在人工智能技术的浪潮中,大模型以其强大的数据处理和学习能力,成为推动科技进步的重要力量。然而,这种跨领域应用的过程并非一帆风顺,既面临挑战也蕴含机遇。本文从复旦大学的研究工作出发,详细分析大模型的机遇与挑战。 背景 GPT4技术报告指出,GPT4仍处于通用人工智…

kpatch制作内核热补丁步骤总结

零、原理及参考 kpatch入门实践教程-CSDN博客 Kpatch 使用过程及其原理-CSDN博客 一、准备工作 安装对应版本的kpatch-build.rpm并解决依赖diff -Naur dir1 dir2 > hot.patch 拿到补丁文件下载对应内核版本的src.rpm安装好对应的开发包kernel-debuginfo&#xff0c;kern…

SpringBoot 多数据源配置

目录 一. 引入maven依赖包 二. 配置yml 三、创建 xml 分组文件 四、切换数据源 一. 引入maven依赖包 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.6.1&…

既美观又方便的后台框架谁需要?进来就对了。

一套既美观又方便的后台框架可以大大幅节约开发时间和成本。 我们来一起看看几个明朗大气的管理控制台页面。 本文档会持续更新 模板编号&#xff1a;翠花_001模板编号&#xff1a;翠花_002模板编号&#xff1a;翠花_003

HTTP协议深入

1.了解web和网络基础 有客户端和服务端双方参与交互 客户端发送请求:request 服务端根据请求给出响应:response 请求通过URL来指定要获取都得资源 响应内容可以是HTML网页&#xff0c;或者用json表示的数据或者其他二进制文件内容 Web使用一种名为HTTP的协议作为规范&…

如何清理电脑内存?让电脑运行如飞!

电脑内存&#xff08;RAM&#xff09;的清理对于维持系统的流畅运行至关重要。随着使用时间的增加&#xff0c;系统内存会被各种应用程序和后台进程占用&#xff0c;导致系统响应变慢&#xff0c;甚至出现卡顿现象。通过有效地清理内存&#xff0c;可以提升电脑的性能&#xff…

实验六 SQL数据查询—单表查询

题目 打开ecommerce数据库&#xff0c;用SQL语句完成下列各项查询要求&#xff1a; 查询每位员工的员工编号empno、员工姓名empname、联系电话telephone和所在部门名称depname查询已下订单的商品的orderno、memname、proname、qty、totalmoney信息查询会员订单总金额超过2000的…

机器人视觉系统的发展前景如何?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「机器人视觉的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;机器视觉作为图像数据…

悲情短视频:成都柏煜文化传媒有限公司

悲情短视频&#xff1a;在光影交错中触动人心的温柔力量 在这个五彩斑斓的视频时代&#xff0c;悲情短视频如同一抹深秋的寒露&#xff0c;悄然落在人们的心田&#xff0c;带来一丝不易察觉却又难以抗拒的凉意。它们不以华丽的特效或激昂的音乐取胜&#xff0c;而是凭借真挚的…

UCOS-III 任务调度与就绪列表管理

01. 就绪优先级位图 在实时操作系统中&#xff0c;任务调度的效率至关重要。UCOS-III通过就绪优先级位图来快速查找最高优先级的就绪任务&#xff0c;从而实现高效调度。就绪优先级位图是一个按位表示的结构&#xff0c;每个位代表一个优先级&#xff0c;当某个优先级上有任务就…

DLS MARKETS外汇:美指牛市通道稳固,非农数据和美国大选成关键因素

摘要&#xff1a; 尽管近期美国经济数据表现疲弱&#xff0c;但美元指数&#xff08;美指&#xff09;依旧表现平稳。本周五即将公布的6月非农就业数据&#xff0c;以及即将到来的美国总统大选&#xff0c;将成为影响美元走势的关键因素。在技术面上&#xff0c;美指保持在牛市…

dell服务器RAID5磁盘阵列出现故障的解决过程二——热备盘制作与坏盘替换过程

目录 背景方案概念全局热备&#xff08;Global Hot Spare&#xff09;&#xff1a;独立热备&#xff08;Dedicated Hot Spare&#xff09;&#xff1a; 过程8号制作成热备清除配置制作独立热备热备顶替坏盘直接rebuild 更换2号盘2号热备 注意注意事项foreign状态要先清除配置 背…

单片机软件架构连载(1)-枚举(enum)

今天跟大家讲一下我在产品开发时&#xff0c;用枚举(enum)的一些骚操作&#xff0c;都是实战经验&#xff0c;不难&#xff0c;但开发经验尚浅的话&#xff0c;不一定能把它灵活应用。 为什么要讲枚举呢&#xff1f; 因为我发现它是一个容易被遗忘&#xff0c;同时又非常重要的…