【Linux】Linux 下的权限(初)

news2024/11/26 19:43:54

d1 目录下有目录dir,和一个普通文件 test.c

重点看到文件的各种权限,拆分清晰地理解(重)

观察到权限和文件类型一坨除了第一列的文件类型其他的都是文件相关的权限,而且是三个三个分开

为什么分开呢?是因为在 Linux 中主要有三种身份:拥有者,所属组和其他人

拥有者:拥有该文件的人,一开始对该文件的权限一般最高

所属组:一组用户的集合,可以给这个组分配对于该文件的相关权限

其他人:除了拥有者和所属组,其他的都属于其他人

三种身份对应各自的权限,所以那坨权限三个三个分开看,分别对应拥有者,所属组和其他人(如上图)

而权限看到有 rwx 或者说 - 是什么意思呢?

原来一个文件一般有三种权限:

r:读权限(read)

w:写权限(write)

x:运行权限(执行)

其中rwx是固定位置的,不能随意变动位置;如果对应位置上的权限不拥有,就用 ' - ' 表示

其中要注意的是普通文件的x和目录的x的理解:

普通文件的x权限:表示该文件是否有运行的权限

   目录    的x权限:表示该目录是否允许进入,目录的运行权限 表示 能不能进去这个目录

并且当目录不能进入的时候(x对应位置为 - ),如果有r(读)权限还是可以读到目录里面的内容,但是有无w(写)权限都是没用的,进不去,怎么在目录里面创建或者说修改东西

还有一个细节的思考清楚:

当拥有者和所属组都是一个人yxr,但是拥有者的权限是 r--(只能读),而所属组的权限是:rw-(可以读和写) ;问现在你就是拥有者yxr时,有没有w(写)的权限?

要清晰:是 没有的!!很多人会疑惑yxr不也是所属组嘛,为什么不能有w写的权限?

细节来咯:壳壳进行身份匹配时,先看是不是拥有者,再看是不是所属组,如果不是那就是其他人;好,重点来咯,如果匹配到你是拥有者,就直接以拥有者的身份进去,不会再去所属组中去查找

所以这里匹配到你是拥有者那就直接以拥有者的身份去查找对应权限,所以权限只有 r--

(身份匹配相当于一个 if ()  else if ()   else() 的语句,进去一个就不会再出来了)

现在进入第二阶段:

权限的修改

一个文件的权限是可以修改的,身份(拥有者,所属组和其他人)对应的权限(除第一三个三个)是可以修改的

首先,文件的拥有者是可以对权限进行修改的(理所应当);当然,还有老卵大哥root也是可以的(root连拥有者都可以修改)

但是最容易忘记的是所属组是不能进行权限修改的(这个反而容易忘记)

改变方法当然是 chmod 啦,具体指令看思维导图

拥有者和所属组的修改

思考:

就算你是文件拥有者,能不能直接把这个文件给其他用户或者root?

不能,你给别人一个文件,不知道你给的这个文件里面有没有不干净的东西,所以就算你是文件拥有者,不能随便把一个文件给别人

只有说有root权限才能:

root用户可以随便把一个文件改成谁的,或者通过拉白名单用sudo提权(将一个语句提升为root权限),来修改文件的拥有者,所属组和其他人

(意思是只有拥有root权限才能这样该文件的身份信息)

浅说语法: ch---  目标用户  文件名

chown:改变拥有者

chgrp:改变所属组

chown  目标拥有者:目标所属组  文件名   :同时改变拥有者和所属组

最后一个大块头,要经常回来看(尽量),关系到你和几个人共享的能力,在Linux上的交流能力

文件权限的目标

目录的权限 和 普通文件的权限是对于什么来说的,来限制和给什么授权的,必须得搞清楚(虽然简单,但是必须非常清晰)—— 简单的事情做到极致

首先看普通文件的权限 rwx 是对于什么来说的:是对于该普通文件的内容来说的!

其中 r(读)权限表示:对应身份的用户是否能读到该普通文件的内容

其中 w(写)权限表示:对应身份的用户是否能对该普通文件的内容进行修改(写进内容,删除里面的内容等)

其中 x(执行)权限表示:对应身份的用户是否能运行该普通文件的内容

在看到目录的权限 rwx :是对于该目录中的内容(目录中的子目录或文件)来说的!!

其中 r(读)权限表示:对应身份的用户是否能读到该目录里面的子目录或普通文件(内容)

其中 w(写)权限表示:对应身份的用户是否能在该目录下创建文件或删除文件(能否对目录的内容进行修改)

其中 x(执行)权限表示:对应身份的用户是否能进入该目录(运行该目录的内容即是能否进入该目录,去和文件内容在一起)

总的来说,权限是对于目录或普通文件的内容来说的

最后要清楚:

当看到一个普通文件的权限默认为664(rw-rw-r--),虽然这个文件中的内容还不能运行起来,但是能不能现在就把该文件的x权限全部打开呢?

可以,可以将该文件给各用户的权限现在就变为可执行(对应 - 变为 x),但是运不运行得起来又是另一回事

这就映射出很重要的一件事:Linux的权限和在Linux上打在的其他运行工具是分离的

尽可以把对应位置上的 - 变为 x,但是运不运行得起来和Linux没有关系,而是和Linux上的对应的运行工具有关(是看符不符合它的语法)

所以才有了gcc编译生成可执行程序这一步,gcc大概是调用了这些工具,能不能成功运行时看文件内容了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【leetcode】456. 132 模式 单调栈出栈特性

看题意是要在数组中找到一个大于左右元素波峰。 一开始看数据量是 10e5,还以为是 nlogn算法。没想到居然是个 n 的单调栈。 这道题利用了递减单调栈出栈的特性, 出栈元素 k、栈中某一个特定元素 j 满足 nums[j] > nums[k],如果从数组后面向前遍历的…

什么是uni-app?为什么要学习uni-app?

文章目录 前言 一、什么是uni-app框架? 二、为什么要学? 三、uni-app开发的适用场景是什么? 总结 前言 随着前端技术的不断发展进步,跨端开发成为了程序猿不得不面临的一个难题,uni-app的出现解决了程序猿不断重复…

《Java 核心技术面试》课程笔记(十)

如何保证集合是线程安全的? 典型回答 Java 提供了不同层⾯的线程安全支持。 在传统集合框架内部,除了 Hashtable 等同步容器,还提供了所谓的同步包装器(Synchronized Wrapper),我们可以调用 Collections 工具类提供…

16款ChatGPT工具,太炸裂了,收藏!

1.ChatGPT for google 一个浏览器插件,可搭配现有的搜索引擎来使用。 最大化搜索效率,对搜索体验的提升相当离谱: 安装完插件后,在搜索引擎搜索任何问题,都能获取两份答案。 左边是谷歌抓取的全网资源,右…

完美解决:“因为计算机丢失VCRUNTIME140_1.dll”

VCRUNTIME140_1.dll是Microsoft Visual C Redistributable的一个组件,它包含了许多用于C编程的函数和类。如果你的系统缺少了这个文件,那么你可能会遇到“找不到VCRUNTIME140_1.dll无法继续执行代码”的错误提示。 方法1:直接复制VCRUNTIME…

python多进程与多线程

1 Python多线程 1.1 GIL 其他语言,CPU是多核时是支持多个线程同时执行。但在Python中,无论是单核还是多核,同时只能由一个线程在执行。其根源是GIL的存在。GIL的全称是Global Interpreter Lock(全局解释器锁),来源是Python设计之…

[MySQL]事务的浅谈

欲买桂花同载酒 终不似 少年游 目录 1.MySQL为什么需要事务 2.MySQL对事务的支持 3.关于事务的操作 控制方式(对于单条SQL) 控制方式二(START TRANSACTION 或 BEGIN) 4.关于ACID 5.关于事务的隔离级别 5.1事务可能存在的问题 5.2事务隔离级别 5.3难点(RR 级别 …

Autosar RTE S/R接口implicit与Explicit的实现与区别

文章目录 前言接口的代码implicitIReadIWrite ExplicitReadWrite 区别与使用场景总结 前言 Autosar官方文档阅读起来比较费劲,一般从实际应用中来了解更多规范中的内容。本文介绍最常用的RTE S/R接口的implicit隐式与Explicit显式两种方式的实现与差别 接口的代码…

SSM + MySQL + Vue2.x + ElementU 图书管理系统(期末作业)

图书管理系统 项目介绍 🔥 SSM MySQL Vue2.x ElementUI 🔥 本项目使用 Idea 开发工具采用当前最火的Java Web前端框架开发,在保证质量的同时界面美观,交互友好,实在是期末大作业的首选项目。 软件架构 使用软…

HashMap源码详解

文章目录 简单介绍提出问题流程说明及验证put元素的流程怎样找到要存储的下标位置的?什么时候会扩容? 加载因子、阈值这些有什么含义?怎样扩容的?扩容的流程.链表可以转成红黑树, 那会从红黑树转成链表吗?什么时候会从链表转成红黑树 小总结 简单介绍 HashMap是Java中最最…

Metal入门学习:绘制纹理图片

一、编程指南PDF下载链接(中英文档) 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…

Linux服务器丨重测序数据分析常用软件安装指南

重测序分析软件安装指南 重测序(resequencing)是指对已知基因组进行高通量测序,以检测个体或种群的遗传变异,从而研究基因组的结构和功能。与全基因组测序不同,重测序通常只对一部分基因组进行测序,例如外显…

【2023 雷泽杯 · Misc】我是签到题

一道图片隐写题 目录 一、题目 二、思路 1.010editor查看源码 2.检索头部关键字段 3.图片隐写——高度隐写 一、题目 看不到这个图片对吧,这就是题目原本的样子。 二、思路 1.010editor查看源码 很明显的rar特征,尝试将后缀改成rar后打开。 发…

《Java就业班体系结构.pdf》:从入门到精通,掌握Java开发的终极指南,成为熟练高级开发者!

Java开发的终极指南 第1阶段:JAVA开篇第2阶段:JAVA语言语法第3阶段:集成开发工具的使用第4阶段:面向对象第5阶段:JavaSE进阶学习第6阶段:数据库JDBC第7阶段:前端精讲第8阶段:JavaEE第…

RocketMQ的学习历程(4)----消息处理 (2)

1.消费者的两种消费模式 顺序消费模式(Sequential Consumer Mode): 在顺序消费模式下,消息队列中的消息按照发送的顺序被消费者顺序消费。每个消息队列只会被一个消费者线程消费,确保消息的顺序性。这种模式适用于需要…

【Hadoop】三、数据仓库基础与Apache Hive入门

文章目录 三、数据仓库基础与Apache Hive入门1、数据仓库基本概念1.1、数据仓库概念1.2、场景案例:数据仓库为何而来1.3、数据仓库主要特征1.4、数据仓库主流开发语言--SQL 2、Apache Hive入门2.1、Apache Hive概述2.2、场景设计:如何模拟实现Hive功能2.…

深度学习用于医学预后-第二课第四周16-17节-比较两个患者的风险

我们怎样比较两个患者的风险? 让我们谈谈如何比较两名患者的风险。假设我们有两个病人,一个50岁,血压162,另一个61岁,血压140。 我们可以使用生存树首先找出他们所属的组。所以我们看到第一个病人的年龄小于60&#…

【CSS 选择器应用在QSS】第二天

CSS 选择器应用在QSS 【1】元素选择器(元素通用性)【2】id 选择器(唯一性)【2.1】CSS【2.2】QSS 【3】类选择器【3.1】CSS【3.2】QSS 【4】类选择器(只针对指定元素)【4.1】CSS【4.2】QSS 【5】通用选择器【…

iptables 防火墙二

目录 SNAT 原理与应用SNAT原理:修改数据包的源地址。 SNAT 实验DNAT原理与应用DNAT原理:修改数据包的目的地址。DNAT转换前提条件: DNAT 示例 SNAT 原理与应用 SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet&#xff…

MyBatis技术练习

一、模仿教程练习增删改查&#xff0c;自己完成一个新表相关操作 1、配置fkxml文件 我们这里的增删改查sql语句必须对应我们自己创建的表 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.…