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

news/2024/11/16 9:36:10/

上期介绍了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.ppmy.cn/news/19682.html

相关文章

2-SAT

前置核心知识:强连通分量(tarjan算法) 1,定义 给定n个集合(每个集合都是有2个元素),再给出m个关系式(形式大致是aVb1),求是否能够从每个集合选一个元素,并且元素满足上…

Citadel——Dusk网络的Zero-Knowledge KYC解决方案

1. 引言 近期,Dusk网络宣布其已支持名为Citadel的Zero-Knowledge KYC解决方案,使得用户和机构可控制其权限以及个人信息分享。该架构可用于all claim-based KYC requests,并让用户完全控制他们共享的信息以及与谁共享信息,同时完…

【CSDN的2022与2023】普普通通的三年,从懵懂、焦虑到坚定、奋进,破除焦虑努力成为更好的自己

大家好,我是黄小黄!一名普通的软件工程在读学生。最近终于闲下来了一丢丢!借着休息之余,来写一篇年度总结散散心~与其说是年度总结,不如说是给大学生活与莽莽撞撞的自己一个交代叭! 这些都是小标题~碎碎念1…

InstanceNorm LayerNorm

InstanceNorm && LayerNorm author: SUFEHeisenberg date: 2023/01/26 先说结论: 将Transformer类比于RNN:一个token就是一层layer,对一整句不如token有意义原生Bert代码或huggingface中用的都是InstanceNorm instead of LayerNorm&#xff…

厚积薄发打卡Day115:Debug设计模式<简单工厂、工厂方法、抽象工厂>

厚积薄发打卡Day115&#xff1a;Debug设计模式<简单工厂、工厂方法、抽象工厂> 简单工厂 定义 由一个工厂对象决定创建出哪一种产品类的实例&#xff08;严格意义并不是设计模式&#xff0c;更是一种风格&#xff09; 类型&#xff1a;创建型&#xff0c;但不属于GOF…

RISC-V Instruction Formats

原始内容如下&#xff1a; RISC-V Instruction Formats The RISC-V Instruction Set Manual Volume I: User-Level ISA lists 15 instruction formats where some of the formats have multiple variants. For the ‘.insn’ pseudo directive the assembler recognizes some o…

建模杂谈系列199 APIFunc Task

说明 春节这段时间就完全没干活,偶尔空下来会想一想要做的事。过去的想法和实验都比较分散,现在正是要慢慢的聚拢,归类,各司其职。 内容 1 楔子 如果把要做的事浓缩成一句话,那么就是:通过构建一套数据存储、处理的系统,提供强大的决策支持,产生巨大的经济效益。 …

代码随想录算法训练营Day48动态规划:198.打家劫舍,213.打家劫舍||,337.打家劫舍|||

打家劫舍是dp解决的经典问题 198.打家劫舍 文章链接&#xff1a;代码随想录 (programmercarl.com) 思路&#xff1a;自己的思路是&#xff0c;将数组重新划分为两个数组&#xff0c;分别对两个数组进行01背包计算最大收益&#xff0c;然后比较两个收益&#xff0c;取两者中的…