当前位置: 首页 > news >正文

【Linux】权限(2):文件权限的深入理解粘滞位

前文回顾:【Linux】权限(1):初识权限与使用理解

目录

一 引入

二 为什么新建文件的时候,新建的文件的权限就是我们看到的权限

三 粘滞位

四 权限总结

五 问题解释

(1)决定文件或目录默认权限的关键因素

(2)root 新建的文件,普通用户能否删除



一 引入

我们在上一篇遗留了两个问题,我们先来回顾一下:

(1)进入一个目录需要什么权限?

对目录来讲:

  1. x 决定是否能进入
  2. r 决定是否能查看目录下的文件信息
  3. w 决定在指定的目录下,是否能够删除和新建文件文件是否能被删除,由所在的目录 w 决定!!!!!(不由拥有者决定)

(2)什么决定了文件或目录的默认权限?

(3)root新建的文件,普通用户不读不写不执行,可以删除吗?

我们来通过下面的讲解来解答这两个问题。


二 为什么新建文件的时候,新建的文件的权限就是我们看到的权限

标题的意思是:为什么我们创建好一个新文件或新目录时,它的拥有者,所属组,other的权限都是已经确定好的

当我们新建一个普通文件时:

发现它的权限是664

普通文件,开始的时候,就要具备x,不是主流!!

文件的起始权限:666-->不给x--->除非是二进制可执行文件或使用指令  chmod ugo +x +filename自己加权限

Linux系统中,会存在一个叫做权限掩码的东西,使用指令umask查看当前设备的权限掩码

一般程序设定的掩码为0002,但是我们也可以自己修改掩码

对于一个目录而言,目录具有x权限是刚需!!!

因为什么目录新建,默认就要能被进入!

目录的起始权限:从777开始

细节1:不同的系统,不同的用户,umask可能会不一样!

细节2:不用担心umask被更改的问题,退出登录,重新登录,umask就会恢复默认

细节3:如何创建一批普通文件: 示例:touch hello{1..100}.txt    删除时也可以一起删除:rm hello{1..100}.txt


三 粘滞位

删除文件,不由目标文件决定,由你这个文件所在的目录权限决定

我们根据目录的权限知道,只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论
这个用户是否有这个文件的写权限.
这好像不太科学啊,我张三创建的⼀个文件,凭什么被你李四可以删掉?我们用下面的过程印证⼀下.

[root@localhost ~]$ chmod 0777 /home/
[root@localhost ~]$ ls /home/ -ld 
drwxrwxrwx. 3 root root 4096 9⽉ 19 15:58 /home/
[root@localhost ~]$ touch /home/root.c
[root@localhost ~]$ ls -l /home/
总⽤量 4
-rw-r--r--. 1 root root 0 9⽉ 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9⽉ 19 15:53 litao
-rw-r--r--. 1 root root 0 9⽉ 19 15:59 root.c
[root@localhost ~]$ su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的⽂件 
rm:是否删除有写保护的普通空⽂件 "/home/root.c"?y
[litao@localhost ~]$ exit 
logout

为了解决这个不科学的问题,Linux引入了粘滞位的概念.

我们先来谈谈文件删除的问题:

我们发现:普通用户能自己删除自己创建的文件,超级用户能自己删除自己创建的文件,但是普通用户能删除超级用户创建的文件,超级用户也能删除普通用户创建的文件

关于Linux文件共享的话题

当⼀个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
1. 超级管理员删除
2. 该目录的所有者删除
3. 该文件的所有者删除


四 权限总结

• 可执行权限:如果目录没有可执行权限,则无法cd到目录中.
• 可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容.
• 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件.

1)目录的可执行权限是表示你可否在目录下执行命令;

(2)如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目,即使目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件);

(3)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限;

(4)所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


五 问题解释

学习完上面的内容,我们就能回答开始剩下的两个问题了:

(1)决定文件或目录默认权限的关键因素

文件或目录的默认权限由umask(权限掩码) 决定,它的作用是从系统预设的基础权限中 “减去” 相应权限,最终得到创建时的默认权限。

  1. 系统预设基础权限不同:目录的基础权限是 rwxrwxrwx(数字表示为 777),文件的基础权限是 rw-rw-rw-(数字表示为 666)。
  2. umask 的数字值代表要移除的权限,例如默认 umask 值 022,意味着会移除 “组用户” 和 “其他用户” 的写权限(w)。

(2)root 新建的文件,普通用户能否删除

普通用户不能直接删除这类文件,删除权限不取决于文件本身的权限,而取决于文件所在目录的权限

  1. 删除操作的权限核心在目录:要删除一个文件,本质是 “修改目录内容”(移除目录中该文件的条目),所以关键看普通用户对文件所在目录是否有 w(写)权限 和 x(执行)权限
  2. 文件自身权限不影响删除:即使文件是 root 创建且权限为 “---------”(无任何权限),只要普通用户对其所在目录有 w 和 x 权限,就能删除该文件;反之,若目录无 w 权限,即便文件开放所有权限,也无法删除。
  3. root 权限的特殊性:如果文件所在目录是 root 专属(如 /root),普通用户默认无任何权限,自然无法删除其中的文件。

http://www.dtcms.com/a/580979.html

相关文章:

  • 做网站公司如何选百度广告联盟推广链接
  • BIM+GIS协同:RVT文件转3DTiles的技术路径与场景落地
  • 中颖AFE芯片:SH367303、SH367306 和 SH367309
  • 数据结构—排序算法篇三
  • 从“医疗大模型”向“医疗智能体”架构与路径分析(白皮书草案-上)
  • LeetCode算法日记 - Day 95: 回文子串
  • DockerCompose与多容器编排
  • AngularJS与SQL的集成使用指南
  • 【ZeroRange WebRTC】TWCC 在 WebRTC 中的角色与工作原理(深入指南)
  • 数据结构常见的八大排序算法
  • 个人怎么做网站app推广引流方法
  • 初识光伏逆变器
  • 一文了解LLM应用架构:从Prompt到Multi-Agent
  • MongoDB 内存管理避坑指南:解决高占用、页错误等核心问题,让数据库性能翻倍
  • 关于DNS中毒攻击的解决方案分享
  • 【C++】数据挖掘算法在软件测试中的应用
  • WebSocket 完全指南:从原理到实战,搭建实时通信桥梁
  • STM32项目分享:智能水产养殖系统
  • 网站开发线框个体营业执照网上年报
  • iPhone苹果手机拍的照片默认是heic如何换成jpg格式
  • 基于微信小程序的旅游攻略分享互动平台设计与实现-项目分享
  • Neo4j Windows桌面版安装及更改默认数据存储位置
  • 智能安防新篇章:EasyGBS助力重塑物业视频管理服务
  • ps2017做网站当阳网站建设电话
  • H5短视频SDK,赋能Web端视频创作革命
  • 如何选择温州本凡科技进行小程序开发服务?
  • 融智兴科技邀您共赴2025中国洗涤展
  • STM32上使用HAL库完美实现驱动MAX98357声卡模块(I2S+DMA+音频环形缓冲区)
  • 【React】打卡笔记,入门学习03:useState、useEffect、useRef、useMemo
  • M|烟花 (1995)