【Linux 02】权限基本概念

news2024/11/29 0:35:02

文章目录

  • 🌈 Ⅰ 权限概念
  • 🌈 Ⅱ 权限管理
    • 1. 文件访问者分类 (角色)
    • 2. 文件类型和访问权限 (事物属性)
    • 3. 文件权限值表示方法
  • 🌈 Ⅲ 权限修改
    • 1. chmod 设置文件访问权限
    • 2. chown 修改文件拥有者
    • 3. chgrp 修改文件或目录的所属组
  • 🌈 Ⅳ 权限掩码
    • 1. 默认权限
    • 2. umask 查看或修改文件掩码
  • 🌈 Ⅴ 目录权限
    • 1. 目录权限问题引入
    • 2. 粘滞位

🌈 Ⅰ 权限概念

1. 权限的概念

  • 通过一定条件,拦住和给予一部分人权力来访问某种资源,权限与人相关。

2. 权限的本质

  • 权限和角色有关:权限限定的是一种角色,限定该角色是否持有对应权限。
  • 权限和事物的属性有关:限制角色的事物有什么属性,权限 = 角色 + 事物属性

3. Linux 用户

Linux 中的角色就是 Linux 中的用户

  1. 超级用户:root,不受权限约束,命令提示符为 " # "。
  2. 普通用户:只能在 Linux 下做有限的事,命令提示符为 " $ "。

4. Linux 命令

  1. 命令:su [用户名]

  2. 功能:切换用户,root 用户可直接切换至系统中的任何用户,无需密码。

在这里插入图片描述

5. 指令提权

  • 格式:sudo 指令

  • 功能:处于普通用户时,使用 root 的权限执行指令。

在这里插入图片描述

  • 注意:使用 sudo 对指令提权时输入的是普通用户的密码,因为此前root 用户已经将该普通用户加入了白名单,所以普通用户使用 sudo 前还需要被 root 用户信任

🌈 Ⅱ 权限管理

1. 文件访问者分类 (角色)

文件的访问者分为三类人 (角色)

  1. u – User 拥有者:文件和文件目录的所有者。
  2. g – Group 所属组:文件和文件目录的所有者所在的组的其他用户,多人任协作时更方便管理。
  3. o – Others 其他用户:不是上述两类人的就是其他用户了。

示例

  • 查看 test.txt 文件的访问者。
  • 默认情况下一般都是拥有者自成一组,文件访问者没有 Others 这一列,因为不是拥有者和所属组的都是其他用户,没必要单开一列去记录。

在这里插入图片描述

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

1. 文件属性

  • 使用 ls -l 查看文件的详细属性。
  • test.txt 文件的拥有者和所属组都是 root,所以普通用户 yxc 对该文件来说就属于 others,只有读权限。

在这里插入图片描述

2. 文件权限

  • 第一个字符:是否拥有读权限 r;第二个字符:是否拥有写权限 w;第三个字符:是否拥有可执行权限 x
  1. r:对文件而言,决定是否能读取文件的内容;对目录而言,决定是否能浏览该目录的信息。
  2. w:对文件而言,决定是否能修改文件的内容;对目录而言,决定是否能在该目录下进行 增删改 文件的操作。
  3. x:对文件而言,决定是否能执行该文件;对目录而言,决定是否能进入该目录。
  • 描述一个文件的权限时一般都是说 拥有者、所属组、others 分别拥有 rwx 的什么权限,权限 = 用户角色 + 文件权限属性

3. 文件类型

  • 如何区分文件类型:Windows 通过后缀名, Linux 通过文件属性的第一个字符。
类型说明
d目录文件
-普通文件 (文本文件、可执行程序、库等)
l链接文件 (类似 Windows 的快捷方式)
b块设备文件 (硬盘、光盘等)
p管道文件
c字符设备文件 (屏幕等串口设备)
s套接口文件

3. 文件权限值表示方法

1. 字符表示法

Linux 表示说明
- - -无权限
r - -仅可读
- w -仅可写
- - x仅可执行
r w -可读可写
r - x可读可执行
- w x可写可执行
r w x可读可写可执行

2. 八进制表示法

  • 可读 r、可写 w、可执行 x 的顺序是 r w x,如果某个文件有对应权限,则对应二进制位上的值为 1。
    • 如:test 文件有读写权限 rw-,则二进制的值为 110。
权限符号二进制八进制
- - -0000
- - x0011
- w -0102
- w x0113
r - -1004
r - x1015
r w -1106
r w x1117

🌈 Ⅲ 权限修改

能修改文件权限的角色

  1. root 用户
  2. 文件的拥有者

1. chmod 设置文件访问权限

语法chmod [选项] 权限 文件名

选项:-R,递归修改目录文件以及目录文件下的所有文件权限。

chmod 修改权限的格式

  1. 使用字符表示法修改权限:用户符号 + - 权限字符
    • 权限修改:+ 增加权限;- 减少权限。
    • 用户符号:u 拥有者;g 拥有者同组用户;o 其他用户;a 所有用户。

在这里插入图片描述

  1. 使用三位八进制表示法修改字符
    • 已知八进制表示法中八进制的值对应的是什么权限,那么只要用上 3 个八进制的数字就能修改 拥有者、所属组和其他用户对该文件的权限了。

在这里插入图片描述

2. chown 修改文件拥有者

语法chown [选项] 用户名 文件名

选项:-R,递归修改目录文件以及目录文件下的所有文件权限。

示例:chown yxc file.txt,将拥有者为 root 的 file.txt 文件的拥有者改成 yxc。

在这里插入图片描述

注意:普通用户想要修改文件拥有者需要使用 sudo 提权。

3. chgrp 修改文件或目录的所属组

格式chgrp [选项] 所属组名 文件名

选项:-R,递归修改目录文件以及目录文件下的所有文件权限。

示例:chgrp yxc file.txt,将所属组为 root 的 file.txt 文件的所属组改成 yxc。

在这里插入图片描述

注意:普通用户想要修改文件所属组需要使用 sudo 提权。

🌈 Ⅳ 权限掩码

1. 默认权限

  • Linux 对于创建的普通文件和目录文件自带默认权限。
  1. 普通文件:默认权限是 0666,去掉 x 的。
  2. 目录文件:默认权限是 0777,包含 x 的。
  • 但是实际上显示出来的普通文件和目录文件的默认权限分别是 0664 和 0775,默认权限不能完全决定文件最终的权限,这情况就和权限掩码有关了。

在这里插入图片描述

2. umask 查看或修改文件掩码

  • 创建文件或目录时还要受到 掩码 umask 的影响,假设默认权限是 mask,则文件的实际权限则是 用 默认权限mask 去过滤 默认掩码umask

umask 格式

  1. umask:查看当前用户的默认掩码。
  2. umask 权限值:设置当前用户的掩码值。

umask 说明

  • 用现有的 默认权限mask 去过滤掉 掩码umask 中出现的权限 (不是做减法)。
  • 超级用户默认掩码 umask 为 0022,普通用户则是 0002。
    • 在 root 中,umask 拥有的权限是所属组的写权限 w,和 others 的写权限 w。
    • 在普通用户中,umask 拥有的权限是 others 的 写权限 w。
  • umask 有的权限不能出现在文件的最终实际权限中。

解释为何目录和普通文件的实际权限变成了 775 和 664

  • 目录文件 catalog 默认权限 0777 对应的权限 rwx rwx rwx 过滤掉掩码 umask 拥有的 others 的 w 权限后实际权限就成了 rwx rwx r-x,也就是 0775。
  • 普通文件 file.txt 默认权限 0666 对应的权限 rw- rw- rw- 过滤掉 umask 拥有的 others 的 w 权限后实际权限就成了 rw- rw- r–,也就是 0664。

umask 示例

  1. 查看当前用户的默认掩码 umask。

在这里插入图片描述

  1. 更改当前用户的默认掩码为 0015,此时的 umask 拥有的权限是所属组的 - - x 权限和 others 的 r - x 权限。

在这里插入图片描述

  1. 使用更改后的掩码创建新文件,利用目录文件和普通文件的默认权限去过滤 umask 拥有的 0015 权限。

在这里插入图片描述

🌈 Ⅴ 目录权限

1. 目录权限问题引入

目录的权限

  • 可读权限 r:如果目录没有可读权限,则无法使用 ls 等命令查看该目录中的文件内容。
  • 可写权限 w:如果目录没有可写权限,则无法在该目录中对文件进行 增删改 操作。
  • 可执行权限:如果目录没有可执行权限,则无法进入到该目录中。

存在的问题

  • 只要某个用户具有该目录的写权限,就能够直接删除该目录中的文件,与这个文件无关。
  • 也就是说,只要对某个目录具有写权限,则是不是该目录下文件的创建者都可以删除该文件。

解决的办法

  1. 对该目录去掉写权限:解决了可能会被外人删除目录下文件的同时又出现了一个新的问题,无法在该目录下进行 增加和修改 文件操作,所以不推荐这个。
  2. 比较推荐的是使用粘滞位

2. 粘滞位

格式chmod +t 目录,对目录加上粘滞位。

功能:即使其他用户对目录具有写权限,也使得除了以下三种用户外都无法删除目录下的文件:

  1. 超级用户 root
  2. 该目录的所有者
  3. 该目录下文件的所有者

示例

  • 现有一个由 root 创建的目录 study 且已经将该目录 拥有者、所属组、others 的权限都设置为 rwx。
  • 使用 chmod -t study 对 root 创建的 study 目录添加粘滞位。
  • 再切换成普通用户 yxc 删除 study 目录下的 test.txt 文件 (yxc 用户是 study 目录的 others)。

在这里插入图片描述

  • 可以看到 yxc 就算拥有 study 目录的写权限,也是无法删除该目录下的文件。

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

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

相关文章

【ArcGIS Pro二次开发】(79):符号系统_CIMUniqueValueRenderer

CIMUniqueValueRenderer是ArcGIS Pro SDK中的一个类,用于创建唯一值渲染器(Unique Value Renderer)。 在ArcGIS Pro中长这样: 通过对CIMUniqueValueRenderer的操作,可以对符号系统进行更改,实现很多功能。…

Matplotlib Figure与Axes速成:核心技能一网打尽

Matplotlib Figure与Axes速成:核心技能一网打尽 🌵文章目录🌵 🌳引言🌳🌳 一、Figure(图形)🌳🍁1. 创建Figure🍁🍁2. 添加Axes&#…

【教学类-47-01】20240206UIBOT+IDM下载儿童古诗+修改文件名

背景需求: 去年12月,我去了其他幼儿园参观,这是一个传统文化德育教育特色的学校,在“古典集市”展示活动中,小班中班大班孩子共同现场念诵《元日》《静夜思》包含了演唱版本和儿歌念诵版本。 我马上也要当班主任了&a…

MyBatis中的XML实现和动态SQL实现

文章目录 一、XML实现1.1增1.2删1.3查1.4改 二、XML方式实现动态SQL2.1if标签2.2trim标签2.3where标签2.4set标签2.5foreach标签2.6include标签和sql标签 一、XML实现 先在新建的XML文件中写入如下内容&#xff1a; <?xml version"1.0" encoding"UTF-8&qu…

php基础学习之分支结构和循环结构(不细讲,来对比一下和两大常用高级编程语言(C++/Java)的细微区别以便记忆)

分支结构 常见分支结构 编程语言常见分支结构有&#xff1a; if语句if-else语句if-elseif-else语句switch语句 其中&#xff0c;除了if-elseif-else语句外&#xff0c;另外3中分支语句在php中和C/Java是一模一样的&#xff01; 而if-elseif-else的唯一不同点就在&#xff0c;【…

【Python网络编程之DHCP服务器】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python开发技术 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Python网络编程之DHCP服务器 代码见资源&#xff0c;效果图如下一、实验要求二、协议原理2.1 D…

奇异递归模板模式应用-对象计数

需求&#xff1a;有时遇到某些类特征相似而又没有共同的父类&#xff0c;希望能够知道这些类的创建数量之和。 思路&#xff1a;将这些类继承自同一个计数类&#xff0c;共享计数变量s_createCount信息&#xff0c;实现如下&#xff1a; class Counter { public:Counter() {s_…

Linux操作系统基础(十五):Shell编程

文章目录 Shell编程 一、什么是Shell 1、简介 2、Shell解释器 二、快速入门 1、编写Shell脚本 2、执行Shell脚本 Shell编程 一、什么是Shell 1、简介 Shell 是一个用 C 语言编写的程序&#xff0c; 通过 Shell 用户可以访问操作系统内核服务。 它类似于 DOS 下的 co…

【实战】一、Jest 前端自动化测试框架基础入门(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(二)

文章目录 一、Jest 前端自动化测试框架基础入门5.Jest 中的匹配器toBe 匹配器toEqual匹配器toBeNull匹配器toBeUndefined匹配器和toBeDefined匹配器toBeTruthy匹配器toBeFalsy匹配器数字相关的匹配器字符串相关的匹配器数组相关的匹配器异常情况的匹配器 6.Jest 命令行工具的使…

【python】object() takes no parameters报错原因

__init__ 你以为写对了&#xff0c;其实错了&#xff0c;因为是左右都是2个下划线。是左边两个&#xff01;&#xff01;右边也是两个&#xff01;&#xff01;&#xff01;不是合计2个&#xff01;&#xff01;&#xff01;

30. 异常

异常 1. 概述2. Throwable 方法2.1 概述2.2 代码示例 3. 异常分类4. 异常处理方式4.1 JVM默认处理异常4.2 自己处理&#xff08;捕获异常&#xff09;try...catch4.2.1 概述4.2.2 灵魂四问 4.3 抛出处理(throw和throws) 5. 自定义异常5.1 概述5.2 代码示例 6. 异常注意事项 文章…

GPT-4影响高度创新思维的领域(一)

GPT-4的应用范围不再局限于对现有信息的检索、整理和复述&#xff0c;而是进一步拓展到了诸如文学创作、科学假设生成、教育辅导、商业策略建议等需要高度创新思维的领域。这种独立思考和创新能力赋予了GPT-4作为虚拟助手时更加丰富多元的角色定位&#xff0c;使其成为一种强大…

如何在PDF 文件中删除页面?

查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤&#xff1a; PDF 是最难处理的文件格式之一。曾经有一段时间&#xff0c;除了阅读之外&#xff0c;无法用 PDF 做任何事情。但是今天&#xff0c;有许多应用程序和工具可以让您用它们做…

寒假思维训练day21

今天更新一道不错的状态压缩DP题&#xff0c;顺带总结一下状态压缩DP。 摘要&#xff1a; Part1 浅谈状态压缩DP的理解 Part2 浅谈对状态机DP的理解 Part3 关于状态压缩DP的1道例题 Part1 状态压缩DP 1、状态压缩DP&#xff1a; 事物的状态可能包含多个特征&#xff0c;…

Zotero插件分享(第二弹)

今天紧接上一篇文章&#xff08;Zotero常用插件分享&#xff09;&#xff0c;继续分享关于Zotero常用插件的相关内容。&#xff08;排名不分先后&#xff09; 1.Translate for Zotero 英文文献阅读辅助工具&#xff0c;可以实现将pdf中选中的文字翻译为指定语言&#xff0c;并…

【学网攻】 第(27)节 -- HSRP(热备份路由器协议)

系列文章目录 目录 系列文章目录 文章目录 前言 一、HSRP(热备份路由器协议)是什么&#xff1f; 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交…

港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明

港口码头航吊远距离相位测距仪|传感器PHR-120100广泛应用于港口码头、航车、位移监测、形变监测、钢铁、堆垛机、龙门吊等领域。 本文重点介绍港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明。 一、布局介绍 二、按键介绍 三、指示灯说明 四、显示屏操作说明 …

使用LORA微调RoBERTa

模型微调是指在一个已经训练好的模型的基础上&#xff0c;针对特定任务或者特定数据集进行再次训练以提高性能的过程。微调可以在使其适应特定任务时产生显着的结果。 RoBERTa&#xff08;Robustly optimized BERT approach&#xff09;是由Facebook AI提出的一种基于Transfor…

【EAI 020】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

论文标题&#xff1a;Diffusion Policy: Visuomotor Policy Learning via Action Diffusion 论文作者&#xff1a;Cheng Chi, Siyuan Feng, Yilun Du, Zhenjia Xu, Eric Cousineau, Benjamin Burchfiel, Shuran Song 作者单位&#xff1a;Columbia University, Toyota Research…

C#中implicit和explicit

理解: 使用等号代替构造函数调用的效果以类似重载操作符的形式定义用于类型转换的函数前者类型转换时候直接写等号赋值语法,后者要额外加目标类型的强制转换stirng str -> object o -> int a 可以 int a (int)(str as object)转换通过编译,但没有转换逻辑所以运行会报错…