Linux基本权限(2)

news2024/11/18 4:21:58

Linux基本权限(2)

📟作者主页:慢热的陕西人

🌴专栏链接:Linux

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

本博客主要讲解了目录权限,和目录,文件的默认权限和他们是怎么生成的,还有粘滞位,umask(掩码)进行权限的收尾

文章目录

  • Linux基本权限(2)
    • 1.目录的权限:
    • 2.默认权限:
      • 2.1 umask掩码:
      • 2.2修改`umask`:
    • 3.粘滞位:
      • 3.1 如何添加粘滞位:
      • 3.2添加粘滞位之后的效果:

1.目录的权限:

对于目录和文件是类似的也有权限的限制:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2K8XBj1-1671266825262)(C:\Users\jason\AppData\Roaming\Typora\typora-user-images\image-20221216203249546.png)]

  • x可执行权限: 如果目录没有可执行权限, 则无法 cd 到目录中

  • r可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

  • w可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

2.默认权限:

起始权限:系统设定的

默认(最终)权限:我们所看到的

首先我们创建一个文件和一个目录,并观察他们的权限属性:

[root@iZ2ze8prly56kg8in4hqa2Z dir]# ll
total 0
drwxrwxr-x 2 root root 6 Dec 17 12:49 new_dir
-rw-rw-r-- 1 root root 0 Dec 17 12:49 test.txt

为什么普通文件的默认的权限是从664开始的?

为什么目录的默认权限是775开始的?

不同的操作系统默认的权限可能是不同的;

在这里插入图片描述

普通文件的起始权限是从666开始的;

目录文件的起始权限是从777开始的;

2.1 umask掩码:

系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!umask

前面提到每个操作系统的默认权限都是不同的这就是由umask决定的(因为我们的默认权限是由初始权限和umask进行如上图的位运算的得到的),那么我们如何查看我们的umask权限掩码是多少呢?

再Linux命令行中输入umask即可;

[root@iZ2ze8prly56kg8in4hqa2Z dir]# umask
0002

这里的0002是什么意思:

第一个0表示八进制位;

剩下的三个数字分别对应文件权限属性中的三个权限:

所属者权限,所属组权限还有other权限;

运算过程(以目录为例):

在这里插入图片描述

最终的结果转化成八进制就是 775,这也回答了上面的两个问题为什么文件默认是664, 目录是775;

2.2修改umask:

语法: umask 八进制数(例如 0002)

演示:

[root@iZ2ze8prly56kg8in4hqa2Z dir]# umask 0003
[root@iZ2ze8prly56kg8in4hqa2Z dir]# umask
0003
[root@iZ2ze8prly56kg8in4hqa2Z dir]# umask 0002
[root@iZ2ze8prly56kg8in4hqa2Z dir]# umask
0002

3.粘滞位:

背景: 在使用Linux的时候,未来可能会有一些共享目录,被所有的普通用户共享,用来保存普通用户产生的临时数据;

准备:共享的目录通常的都是root提供的,文件被所有的人共享的时候,受权限约束,但是拦不住别人删我的文件(即使是other没有rwx权限也可以删除)!!

为了让大家共享文件,并且不让其他人随便删除别人的文件,引入粘滞位

粘滞位只能给目录添加;

创建共享文件:

[root@iZ2ze8prly56kg8in4hqa2Z dir]# mkdir public
[root@iZ2ze8prly56kg8in4hqa2Z dir]# ll
total 0
drwxrwxr-x 2 root root 6 Dec 17 12:49 new_dir
drwxrwxr-x 2 root root 6 Dec 17 15:59 public
-rw-rw-r-- 1 root root 0 Dec 17 12:49 test.txt
[root@iZ2ze8prly56kg8in4hqa2Z dir]# chmod 777 public
[root@iZ2ze8prly56kg8in4hqa2Z public]# touch root1
[root@iZ2ze8prly56kg8in4hqa2Z public]# touch root2
[root@iZ2ze8prly56kg8in4hqa2Z public]# touch root3

尝试删除:

[root@iZ2ze8prly56kg8in4hqa2Z public]# ll
total 0
-rw-r--r-- 1 root root 0 Dec 17 16:21 root1
-rw-rw-r-- 1 root root 0 Dec 17 16:08 root2
-rw-rw-r-- 1 root root 0 Dec 17 16:09 root3
[root@iZ2ze8prly56kg8in4hqa2Z public]# rm root1
rm: remove regular empty file 'root1'? y
[root@iZ2ze8prly56kg8in4hqa2Z public]# ll
total 0
-rw-rw-r-- 1 root root 0 Dec 17 16:08 root2
-rw-rw-r-- 1 root root 0 Dec 17 16:09 root3

我们发现用普通用户是可以删除的;

3.1 如何添加粘滞位:

语法:chmod +t public

[root@iZ2ze8prly56kg8in4hqa2Z dir]# chmod +t public
[root@iZ2ze8prly56kg8in4hqa2Z dir]# ll
total 0
drwxrwxr-x 2 root root  6 Dec 17 12:49 new_dir
drwxrwxrwt 2 root root 45 Dec 17 16:09 public
-rw-rw-r-- 1 root root  0 Dec 17 12:49 test.txt

这时候我们使用普通用户尝试去删除public中的文件的时候是不能删除的:

[root@iZ2ze8prly56kg8in4hqa2Z public]# su mi
[mi@iZ2ze8prly56kg8in4hqa2Z public]$ rm root1
rm: remove write-protected regular empty file 'root1'? y
rm: cannot remove 'root1': Operation not permitted

3.2添加粘滞位之后的效果:

前面我们提到如果other没有没有w权限的话,那么我们就不能删除文件了,但是我们也不能在public目录中创建文件了。

所以我们给public添加粘滞位后的效果:

①每个普通用户都可以在public目录中任意的添加文件;

②那么谁能删除文件呢?

(1)root

(2)文件的所属者

(3)该目录的所属者


到这本篇博客的内容就到此结束了,至此Linux权限的部分也就学习结束了,接下来会进入Linux工具的学习,为后序的在Linux上进行开发做铺垫。
如果觉得本篇博客内容对你有所帮助的话,可以点赞,收藏,顺便关注一下!
如果文章内容有错误,欢迎在评论区指正

在这里插入图片描述

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

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

相关文章

2022年底,我手里一共负责了30套系统

2022年真是不平凡的一年,往常熙熙攘攘的办公室人越来越少,真是像曹操说的兄弟相继凋零,好似风中落叶啊。 结果人少了,手里的系统一个没少,慢慢年底了,我汇总了一下,手里的系统达到了30来个。 搞…

Linux--基础IO

目录 C文件IO 系统文件IO 接口介绍 系统调用和库函数 文件描述符 open返回值 文件描述符的分配规则 重定向 代码演示 使用dup2系统调用 缓冲区 FILE 理解文件系统 文件系统 inode 软硬链接 静态库和动态库 概念 生成静态库 生成动态库 C文件IO 写文件 #in…

SpringBoot+Prometheus+Grafana 实现自定义监控

1.Spring Boot 工程集成 Micrometer 1.1引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>io.micrometer<…

E1. Erase and Extend (Easy Version)(纯暴力+string)

Problem - 1537E1 - Codeforces 这是该问题的简单版本。唯一的区别是对n和k的约束。只有当所有版本的问题都解决了&#xff0c;你才能进行黑客攻击。 你有一个字符串s&#xff0c;你可以对它进行两种类型的操作。 删除字符串的最后一个字符。 复制字符串&#xff1a;s:ss&…

数据结构---堆排序

堆排序JAVA实现和快速排序区别二叉堆的构建&#xff0c;删除&#xff0c;调整是实现堆排序的基础之前博客写了二叉堆&#xff1a; 二叉堆最大堆的堆顶是整个堆中的最大元素。最小堆的堆顶是整个堆中的最小元素。 堆排序步骤&#xff1a; 把无序数组构建成二叉堆。(需要从小到…

ArcGIS基础:等高线数据生成栅格DEM数据

以下操作为生成栅格DEM数据的方法。 一般方法是先创建TIN&#xff0c;然后在转为栅格DEM数据。 原始数据如下&#xff1a;为等高线数据&#xff0c;创建TIN数据需要用到等高线数据的【高程】字段。 声明&#xff1a;数据来源于网络。 工具位于【3D分析工具】下的【TIN】下…

BeanDefinition

1. 前言 Spring最重要的一个概念当属Bean了&#xff0c;我们写的Controller、Service、Dao凡是加了对应注解交给Spring管理的&#xff0c;都是Spring容器中的一个Bean。把我们自己写的类变成一个Bean交给Spring管理有很多的好处&#xff0c;比如我们不用自己去new对象了&#…

ssh+mysql实现的Java web企业人事人力资源管理系统源码+运行教程+参考论文+开题报告

今天给大家演示的是一款由sshmysql实现的Java web企业人事人力资源管理系统&#xff0c;其中struts版本是struts2&#xff0c;本系统功能非常完善&#xff0c;已经达到了可以商用的地步&#xff0c;基本全部实现了整个人力资源管理的所有功能&#xff0c;包括员工档案信息、部门…

jekins集成部署

jekins集成部署1.jekins简介2.Jenkins部署环境3. jekins安装4.配置jekins启动和停止脚本5.插件安装5.1.安装maven插件安装5.2 安装gitee插件5.3 安装Publish Over SSH插件5.4 安装 事件机制插件6.任务构建6.1 构建任务6.2 配置giteeApi令牌6.3 配置gitee源码地址6.4 在build中配…

3D激光里程计其二:NDT

3D激光里程计其二&#xff1a;NDT1. 经典NDT2. 计算方式2.1 2D场景求解:2.2 3D场景求解&#xff1a;3. 其他 NDTReference:深蓝学院-多传感器融合 1. 经典NDT NDT 核心思想&#xff1a;基于概率的匹配。目标是将点集 Y 匹配到固定的点集 X 中。这里的联合概率说的是将 X 划分成…

计算机毕业设计springboot+vue社区疫情防控系统

项目介绍 本系统运用最新的技术springboot框架,此框架是现在社会公司生产中所用的必需框架,非常实用,相比于以前的ssm框架,简单很多。前端框架运用vue框架,vue框架是最近几年非常流行的前端技术,适合很多开发语言。主要可以是系统的前端和后端进行解耦,分离,有利于开发者分别注…

设计模式——中介者模式

中介者模式一、基本思想二、应用场景三、结构图四、代码五、优缺点优点缺点一、基本思想 定义一个中介对象来封装一系列对象之间的交互&#xff0c;使原有对象之间的耦合松散&#xff0c;且可以独立地改变它们之间的交互。中介者模式又叫调停模式&#xff0c;它是迪米特法则的…

Proteus8仿真:51单片机LCD1602显示

51单片机LCD1602显示元器件原理图部分代码main.c工程文件元器件 元器件名称排阻RESPACK-851单片机AT89C51LCD1602LM016L按键BUTTON 原理图部分 LCD1602驱动: HD44780显示主要有8位操作8位两行显示&#xff0c;4位操作8位一行显示&#xff0c;8位操作8位一行显示。 LCD1602主要…

【Python】循环语句

目录 1.while 循环 2. for 循环 3. continue 4. break 1.while 循环 基本语法格式 while 条件&#xff1a; 循环体 条件为真&#xff0c;则执行循环体代码 条件为假&#xff0c;则结束循环 例1&#xff1a;打印 1 - 10 的整数 num 1 while num < 10:print(num)num 1 …

【AI with ML】第 10 章 :创建 ML 模型以预测序列

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

MySQL底层索引

目录 一、什么是索引&#xff1f; 二、MySQL索引结构分析【MySQL底层采用的是BTree】 1、为什么不使用二叉树&#xff1f; 2、为什么不使用红黑树&#xff1f; 3、为什么不使用Hash&#xff1f; 4、BTree与B-Tree的区别&#xff1f; 三、MySQL数据库的表结构、索引、数据 1、M…

基于Sharfetter-Gummel和改进的Sharfetter-Gummel计算对流扩散方程的通量(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

1. Arthas的命令

万恶淫为首&#xff0c;百善孝为先 Arthas命令 可以查看相应的文档: https://arthas.aliyun.com/doc/命令.html 如: https://arthas.aliyun.com/doc/grep.html https://arthas.aliyun.com/doc/cat.html 基础命令 help 查看命令帮助信息 cat 查看当前arthas 系统中的任意文件…

【算法】八月算法打卡

2022-08-01 低配版 promise class MyPromise {constructor(executor) {// 成功回调队列this._resolveQueue [];// 失败回调队列this._rejectQueue [];let resolve (val) > {while (this._resolveQueue.length) {const callback this._resolveQueue.shift();callback(v…

【iOS】对象,消息,运行期

文章目录对象&#xff0c;消息&#xff0c;运行期属性属性特质原子性方法名在对象内部尽量直接访问实例变量对象等同性特定类所具有的等同性判断等同性判定的执行深度容器中可变类的等同性以“类族模式”隐藏实现细节创建类族Cocoa里的类族在既有类中使用关联对象存放自定义数据…