【Linux】目录权限和默认权限

news2024/10/6 8:30:51

上期介绍了Linux的文件权限,这期我们仔细来说说Linux环境下目录权限和默认权限

一、目录权限

1.1 进入目录所需的权限

我们在进入目录时需要什么样的权限呢?

是r、w还是x呢?

下面我们一起来验证一下:

📋如下我门拥有全部目录dir的权限,是可以自由的进退目录的:

📋现在去掉目录dir拥有者的r权限,发现也是可以自由的进退目录的:

📋再去掉目录dir拥有者的w权限,发现还是可以自由的进退目录的:

📋最后去掉目录dir拥有者的x权限,发现没有权限进退目录了

📌综上所述:进入一个目录只需要x权限

1.2 查看目录下文件所需的权限

当我们进入目录后,想要查看目录下文件需要什么权限呢?

接下来接着验证:

📋我们现在拥有全部的权限,是可以进入dir目录的并查看其中内容的:

📋现在去掉目录dir拥有者的r权限,发现并不能读取目录下文件了:

📌综上所述:读取目录下文件需要r权限

1.3 在目录下创建新文件和删除文件所需的权限

当我们进入目录后,想要在目录下创建新文件需要什么权限呢?

📋继续验证,根据以上规律,这里偷个小懒,现在直接去掉dir目录拥有者的w权限来试试看:

发现并没有在目录下创建新文件的权限了

经验证,删除文件也是如此

📌综上所述:在目录下创建新文件和删除文件要r权限

1.4 粘滞位

现在我们来想象一个场景:我们在工作时上级创建了一个共享目录,所有员工都可以在此目录里共享文件(即都可以在此目录里创建、删除。阅读和运行文件),各员工都可以修改自己文件的权限。当有一天你没有给某个同事阅读自己文件的权限,同事一气之下将你在此目录里留存的文件全部删了,这极其不合理,但是在Linux环境下是可以做到的(因为共享目录下,对所有人都有w权限)。

📋下面是举例:

上级创建了一个public共享目录

有一天LHS用户进入了该共享目录

该用户删除了CC用户创建的文件

为了避免这种情况,我们引入了粘滞位(只能给目录添加这一概念:

📌具体操作为:chmod +t 想要添加粘滞位的目录

📋继续举例:

上级发现了这件事情,将公共目录public加了一个粘滞位:

LHS这个用户故技重施,发现删除不了CC用户的文件了:

📌综上所述:粘滞位存在的意义就是保护共享目录下的共享文件,不让他人乱删文件(这样共享目录下的文件只能由文件的拥有者和root可以删)

二、默认权限

我们在Linux环境下创建了一个文件或者目录时,可以看到其默认权限:

在我们没有修改任何权限的情况下,可以看到:

普通文件(不包括可执行文件)默认权限是:664(八进制方案),目录默认权限是:775(八进制方案)

但这种默认权限只在我的环境下存在,不同的环境默认权限可能不一样

那默认权限是怎么来的呢?

2.1 最终权限

📌实际上:默认权限=最终权限=起始权限&(~umask)

现在我们来仔细分析一下最终权限是怎么来的:

2.1.1 起始权限

在得到最终权限之前先要了解Linux环境下的起始权限:

普通文件(不包括可执行文件)起始权限是:666(八进制方案),目录起始权限是:777(八进制方案)

而umask就是权限掩码

权限掩码的作用就是在起始权限中,去掉在umask中出现的权限,并且不能影响其他权限

这样我们将umask按位取反,再与起始权限(需要转换为2进制)与或即可得到最终权限:

2.2 umask

对于umask我们是可以进行修改的:

使用umask指令即可

📌具体操作为:umask 八进制方案

📋下面是举例操作:

这样我们所看到的默认权限就发生了变化


今天的博客到此为止就将Linux上所有的权限内容一一分析完毕了

下面将会给各位看客带来Linux上的一些工具和C++内容,敬请期待~

本文若有纰漏还请各位大佬在评论区不吝赐教呀

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

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

相关文章

Day11 AOP介绍

1 前言AOP,Aspect Oriented Programming,面向切面编程,是对面向对象编程OOP的升华。OOP是纵向对一个事物的抽象,一个对象包括静态的属性信息,包括动态的方法信息等。而AOP是横向的对不同事物的抽象,属性与属…

【Python从入门到精通】第一阶段

文章目录前言python的起源打印hello world注释变量变量基本概念类型类型转换运算符字符串拓展字符串的三种定义方法字符串拼接字符串格式化数据输入input比较布尔类型和比较运算符if判断if elseif elif else嵌套循环while循环while循环嵌套for循环range()的使用函数的使用函数的…

3小时精通opencv(五) 利用TrackBar进行颜色检测

3小时精通opencv(五) 利用TrackBar进行颜色检测 参考视频资源:3h精通Opencv-Python 本章内容介绍如何利用TrackBar调节色域, 手动提取到我们需要的颜色 文章目录3小时精通opencv(五) 利用TrackBar进行颜色检测创建Trackbar色彩检测创建Trackbar 在opencv中使用createTrackbar函…

C语言:数组

往期文章 C语言:初识C语言C语言:分支语句和循环语句C语言:函数 目录往期文章前言1. 一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化2. 一维数组的使用3. 一维数组在内存中的存储4. 二维数组的创建和初始化4.1 二维数组的创建4.2 二维…

大数据技术架构(组件)7——Hive:Filter PushDown Cases And Outer Join Behavior

1.2、Filter PushDown Cases And Outer Join Behavior前提:关闭优化器set hive.auto.convertjoinfalse; set hive.cbo.enablefalse;Inner Join:1、Join On中的谓词: 左表下推、右表下推2、Where谓词:左表下推、右表下推-- 第一种情况: join on 谓词 selectt1.user_id,t2.user_i…

C++函数定义和调用介绍

C函数定义和调用介绍 函数的意义:利用率高,可读性强,利于移植。 一个C程序中主函数有且只有一个,是程序的入口,而函数(或称子函数)可以有很多。 每个 C 程序都至少有一个函数,即主…

2021 XV6 8:locks

实验有两个任务,都是为了减少锁的竞争从而提高运行效率。Memory allocator一开始我们是有个双向链表用来存储空闲的内存块,如果很多个进程要竞争这一个链表,就会把效率降低很多。所以我们把链表拆成每个CPU一个,在申请内存的时候就…

栈和队列的应用

一、栈在括号匹配中的应用 数据结构之栈_迷茫中的小伙的博客-CSDN博客_数据结构之栈栈括号和队列的应用 二、栈在表达式求值中的应用 中缀转 ->后缀 : 左右先 (左边能先算,先算左边,因为这样可以保证确定性,即计算机运算的方式) 后缀转->中缀 &#xff1a…

王者荣耀入门技能树-解答

前言 前段时间写了一篇关于王者荣耀入门技能树的习题,今天来给大家解答一下。 职业 以下哪个不属于王者荣耀中的职业: 射手法师辅助亚瑟 这道题选:亚瑟 王者荣耀中有6大职业分类,分别是:坦克、战士、刺客、法师、…

如何好好说话-第12章 理清楚问题就是答案

生活中该不该积极主动与别人展开社交活动?有些时候社交活动并不开心,仅仅只是无聊的闲才。但他确实能拉拢人际关系,帮我们获得近身套路。而且有一种观点认为不善于社交的人是不成功的。注意以上说的这些都是偏见。当我们站在一个更高的维度认…

Jetpack架构组件库:Hilt

Hilt Hilt 是基于 Dagger2 的依赖注入框架,Google团队将其专门为Android开发打造了一种纯注解的使用方式,相比 Dagger2 而言使用起来更加简单。 依赖注入框架的主要作用就是控制反转(IOC, Inversion of Control), 那么什么是控制…

表格相关的一些标签

<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>表格相关的标一些签</title> </head> <body> <!-- 需求 1&#xff1a;做一个四行&#xff0c;三…

Golang进阶

"白昼会边长&#xff0c;照亮心脏,让万物生长。"一、Golang进阶我们对golang的语法进行了一定的了解后&#xff0c;也算是入门了。本节的进阶篇围绕三个方向展开,Goroutine 、 Channel 、Sync。如何理解并行与并发&#xff1f;并行是指“并排行走”或“同时实行或实施…

用数组实现链表、栈和队列

目录前言一、用数组实现链表1.1 单链表1.2 双链表二、用数组实现栈三、用数组实现队列前言 众所周知&#xff0c;链表可以用结构体和指针来实现&#xff0c;而栈和队列可以直接调用STL&#xff0c;那为什么还要费尽心思用数组来实现这三种数据结构呢&#xff1f; 首先&#x…

好的质量+数量 = 健康的创作者生态

缘起 CSDN 每天都有近万名创作者发表各种内容&#xff0c; 其中博客就有一万篇左右。 这个数量是非常可喜的&#xff0c;这也是 CSDN 的产品、研发运营小伙伴、和各位博主持续工作的结果。 衡量一个 IT 内容平台&#xff0c;除了数量之外&#xff0c;还有另外一些因素&#xf…

Linux——动态库

目录 制作并发布动态库 使用动态库 使用动态库程序运行时的错误 制作并发布动态库 静态库的代码在链接的时候会被拷贝进对应的可执行程序内部&#xff0c;动态库则不需要拷贝。 动态库在形成目标文件时&#xff0c;需要加一个选项 -fPIC&#xff1a;形成一个与位置无关的二…

Yocto常用术语

Yocto常用术语 Yocto是一套开源、专为嵌入式定制的编译系统&#xff0c;它提供了toolset和开发环境&#xff0c;开发人员可以利用Yocto定制基于Linux的系统。Yocto官网介绍了其常用术语&#xff0c;官网链接Yocto Project Terms&#xff0c;了解这些术语可以加深对Yocto的认识…

第五章 高级数据管理

在第4章&#xff0c;我们审视了R中基本的数据集处理方法&#xff0c;本章我们将关注一些高级话题。本章分为三个基本部分。在第一部分中&#xff0c;我们将快速浏览R中的多种数学、统计和字符处理函数。为了让这一部分的内容相互关联&#xff0c;我们先引入一个能够使用这些函数…

低功耗广域网LPWAN 8大关键技术对比

物联网被认为是继计算机、互联网之后&#xff0c;世界信息产业发展的第三次浪潮&#xff0c;它的出现将大大改变人们现有的生活环境和习惯。智能家居、工业数据采集等场景通常采用的是短距离通信技术&#xff0c;但对于广范围、远距离的连接&#xff0c;远距离通信技术不可或缺…

分享146个ASP源码,总有一款适合您

ASP源码 分享146个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 146个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1HG8AMPldOPHcEmMsGnVwMA?pwdg97k 提取码&#x…