【Linux 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.mfbz.cn/a/388067.html

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

相关文章

Hive——企业调优经验

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验,有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划,查看计划中的资源消耗情况,定位潜在的性能问题,并进行相应的优化。 explain执行计划…

LabVIEW荧光显微镜下微管运动仿真系统开发

LabVIEW荧光显微镜下微管运动仿真系统开发 在生物医学研究中,对微管运动的观察和分析至关重要。介绍了一个基于LabVIEW的仿真系统,模拟荧光显微镜下微管的运动过程。该系统提供了一个高效、可靠的工具,用于研究微管与运动蛋白(如…

汉诺塔问题——递归算法与非递归算法

一、问题描述 汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令…

Spring 用法学习总结(一)之基于 XML 注入属性

百度网盘: 👉 Spring学习书籍链接 Spring学习 1 Spring框架概述2 Spring容器3 基于XML方式创建对象4 基于XML方式注入属性4.1 通过set方法注入属性4.2 通过构造器注入属性4.3 使用p命名空间注入属性4.4 注入bean与自动装配4.5 注入集合4.6 注入外部属性…

auto.js教程(autojs教程、autox.js、autoxjs)笔记(二)环境搭建——2、安卓手机投屏软件scrcpy的安装和使用(scrcpy教程)

参考文章:【自动化技术】Autojs从入门到精通 参考文章:AutoXJS开发入门简介菜鸟教程 参考文章:关于Auto.js的下架说明 参考文章:Auto.js 4.1.0 文档 文章目录 005--【环境搭建】2、安卓手机投屏软件scrcpy的安装和使用scrcpy官…

【1024】我的创作纪念日

机缘 1024天了,开始在这里学习编程知识、IT技能,CSDN让我发现了一群热爱学习和分享的小伙伴,也逐渐在这里稳定下来。 收获 不知不觉已经两年多过去了,通过不断的分享,不仅自己的知识技能得到了提升,能帮…

腾讯云4核8G服务器多少钱?

腾讯云4核8G服务器多少钱?轻量应用服务器4核8G12M带宽一年446元、646元15个月,云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元,5年6490.44元,标准型SA2服务器1444.8元一年,在txy.wiki可以查询详细配置和精准报价…

SpringCloud-Hystrix:服务熔断与服务降级

8. Hystrix:服务熔断 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免失败! 8.1 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服…

B2科目二考试项目笔记

B2科目二考试项目笔记 1 桩考1.1 右起点倒库1.2 移库(左→右)1.3 驶向左起点1.4 左起点倒库1.5 驶向右起点 2 侧方停车考试阶段(从路边开始): 3 直角转弯4 坡道定点停车和起步5 单边桥6 通过限速限宽门7 曲线行驶8 连续…

[数学建模] 计算差分方程的收敛点

[数学建模] 计算差分方程的收敛点 差分方程:差分方程描述的是在离散时间下系统状态之间的关系。与微分方程不同,差分方程处理的是在不同时间点上系统状态的变化。通常用来模拟动态系统,如在离散时间点上更新状态并预测未来状态。 收敛点&…

Selenium图表自动化开篇

目录 前言: 使用 Canvas 或者 SVG 渲染 选择哪种渲染器 代码触发 ECharts 中组件的行为 前言: 图表自动化一直以来是自动化测试中的痛点,也是难点,痛点在于目前越来越多公司开始构建自己的BI报表平台但是没有合适的自动化测试…

计算机设计大赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…

使用bpmn-js 配置颜色

本篇文章介绍如何使用bpmn-js给图例配置颜色。该示例展示了如何向BPMN图添加颜色的多种不同方法。 通过层叠设置颜色 这种方式比较简单,直接通过设置图片的CSS层叠样式就可实现。 .highlight-overlay {background-color: green; /* color elements as green */opa…

Python算法探索:从经典到现代

引言 Python,作为一种功能强大的编程语言,一直是算法实现的首选工具。从经典的排序和查找算法到现代的机器学习和深度学习算法,Python都展现出了其强大的实力。接下来,我们将一起探索Python算法的经典与现代。 一、经典算法&#…

关于Django的中间件使用说明。

目录 1.中间件2. 为什么要中间件?3. 具体使用中间件3.1 中间件所在的位置:在django的settings.py里面的MIDDLEWARE。3.2 中间件的创建3.3 中间件的使用 4. 展示成果 1.中间件 中间件的大概解释:在浏览器在请求服务器的时候,首先要…

小区周边适合开什么店?商机无限等你来挖掘

在小区周边开店,是许多创业者的首选。那么,到底开什么店才能抓住商机呢? 作为一名开店 5 年的资深创业者,我将以我的鲜奶吧为例,分享一些实用的经验和见解。 我的鲜奶吧采用了鲜奶吧酸奶店结合体的模式,产…

操作 Docker 存储卷的常用指令汇总

1. 什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。使得可以在宿主机和容器内共享数据库内容,让容器直接访问宿主机中的内容,也可以宿主机向容器写入内容,容…

基于函数计算AIGC图片识别

目录 在 OSS 中建立图片目录 在函数计算中基于模板创建ImageAI应用 体验ImageAI图像识别效果 我们不但可以基于函数计算创建AIGC应用,实现以文生图,同时我们也可以基于函数计算创建ImageAI应用,通过简单几步实现对图片中对象的识别。下面我…

【初学者必看】迈入Midjourney的艺术世界:轻松掌握Midjourney的注册与订阅!

文章目录 前言一、Midjourney是什么二、Midjourney注册三、新建自己的服务器四、开通订阅 前言 AI绘画即指人工智能绘画,是一种计算机生成绘画的方式。是AIGC应用领域内的一大分支。 AI绘画主要分为两个部分,一个是对图像的分析与判断,即…

qt“五彩斑斓“ opengl

本篇文章我们来描述一下opengl相关知识 我们先看一下opengl渲染的效果 很漂亮? 那下面就来介绍一下这么漂亮的opengl OpenGL(Open Graphics Library)是一个跨平台的图形编程接口,用于渲染2D和3D图形。它提供了一系列函数和数据结…
最新文章