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

Linux 进阶权限管理核心:权限掩码umask与粘滞位的深度解析

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

一. 核心前置问题铺垫(面试高频)

二、umask:新文件权限的 "先天控制器"

2.1 功能与原理

2.2 格式与实际案例

2.3 细节问题总结(附创建一批文件的操作)

三. file 指令:文件类型的 “识别器”

3.1 功能和语法

3.2 常用选项和实际案例

四. 目录权限:容易踩坑的 “特殊逻辑”

4.1 目录权限的核心规则

4.2 补充:Linux下的共享文件话题

五. 粘滞位:解决目录权限 “不科学” 的方案

5.1 功能与设置

5.2 实际使用案例

结尾:


前言:

在 Linux 多用户操作系统中,权限管理是保障系统安全与数据有序性的核心机制。从普通用户的文件隐私保护到服务器公共目录的协作管理,权限体系的合理配置直接决定了系统的安全性与可用性。在这一体系中,umask(用户文件创建掩码)粘滞位(Sticky Bit)是两个看似基础却至关重要的组件:umask 决定了新文件与目录的默认权限基线,从源头控制权限开放程度;粘滞位则解决了共享目录中文件删除的安全悖论,实现开放协作与数据保护的平衡。深入理解这两个机制的工作原理与实践方法,是每一位 Linux 使用者与管理员必备的核心技能


一. 核心前置问题铺垫(面试高频)

在本篇博客起始呢,我们先来看看下面这三个问题,都是面试经常问到的,这些问题在我们的文章中后续都会得到解答

我们先对第一个问题进行一个回答:

剩下两个问题先不作讲解,等博主写完这篇博客再作分析


二、umask:新文件权限的 "先天控制器"

2.1 功能与原理

umask(文件权限掩码)的核心作用是调整新创建文件 / 目录的默认权限。Linux 系统对新文件和目录有 “初始最大权限”:

  • 新文件默认最大权限为0666(即rw-rw-rw-,可读、可写)
  • 新目录默认最大权限为0777(即rwxrwxrwx,可读、可写、可执行)
  • umask可以查看当前默认权限掩码,主要看后三位

注意:实际创建的资源权限并非直接使用这个 “最大值”,而是要经过umask的一些运算(绝对不是简单的减法,后面的图片演示里有具体运算过程)。公式为:最终权限=起始权限&(~权限掩码)(~表示按位取反,&表示按位与,注意都是八进制转成二进制后运算)

2.2 格式与实际案例

格式umask  权限掩码

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002(后面的演示图里暂时用的超级用户,代码尽量会开始使用普通用户演示,但是如果大家会配置sudo权限的话,尽量全部使用普通用户比较好,不会也没事,以后会讲到的)

实际案例

# root查看umask以及创建文件和目录的默认权限
[root@VM-4-4-centos lesson7]# umask
0022
[root@VM-4-4-centos lesson7]# ll
total 4
drwxr-xr-x 2 root root 4096 Oct 29 22:54 dir
-rw-r--r-- 1 root root    0 Oct 29 22:19 text.txt# 普通账户查看umask以及创建文件和目录的默认权限
[yhr@VM-4-4-centos lesson7]$ umask
0002
[yhr@VM-4-4-centos 118]$ ll
total 4
drwxrwxr-x 2 yhr yhr 4096 Oct 30 11:16 dir
-rw-rw-r-- 1 yhr yhr    0 Oct 30 11:16 text.txt# 临时修改umask,达到不想让所属组和other有任何权限(文件用066也行本来就没x权限,目录必须077)
[yhr@VM-4-4-centos lesson7]$ umask 077
[yhr@VM-4-4-centos lesson7]$ umask
0077
# 我们再创建文件或者目录就会发现默认权限变了,达到了我们的目的
[yhr@VM-4-4-centos 118]$ ll
total 4
drwx------ 2 Lotso Lotso 4096 Oct 30 11:18 dir
-rw------- 1 Lotso Lotso    0 Oct 30 11:18 text.txt

第2个常见问题的解答以及当前知识点演示图(一定要看)

2.3 细节问题总结(附创建一批文件的操作)

细节问题

  1. 不同的系统,不同的用户,umask可能不同
  2. 不用担心umask被更改的问题,退出登录,重登就会恢复默认
  3. 当需要创建一批文件并想要它们的默认权限符合我们的预期时,umask就很好用了;那如何创建和删除一批文件呢(我们后续也可能会用到,这里先看看),注意下面的演示

新建一批文件:

删除一批文件:


三. file 指令:文件类型的 “识别器”

3.1 功能和语法

file指令的核心作用就是辨识文件类型,语法为:file [选项] 文件或者目录 …

3.2 常用选项和实际案例

常用选项

  • -c:详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z:尝试去解读压缩文件的内容。

实际案例


四. 目录权限:容易踩坑的 “特殊逻辑”

4.1 目录权限的核心规则

这个也是我们最上面解决第1个问题的核心关键
目录的权限与文件权限有本质区别,需重点理解三点:

  • 可执行权限(x):无 x 权限则无法cd进入目录;
  • 可读权限(r):无 r 权限则无法用ls等命令查看目录内文件;
  • 可写权限(w):无 w 权限则无法在目录中创建、删除文件。

关键坑点:只要用户对目录有w权限,就可以删除目录内的所有文件,无论该用户是否有文件本身的写权限。
我们直接拿上篇博客中最后的模拟示例来看看

# 1. root设置/home目录为777(所有用户可写)
[root@bite-alicloud ~]$ chmod 777 /home
[root@bite-alicloud ~]$ ls -ld /home
drwxrwxrwx. 3 root root 4096 Oct 22 15:58 /home# 2. root在/home创建root.c(所有者为root)
[root@bite-alicloud ~]$ touch /home/root.c
[root@bite-alicloud ~]$ ls -l /home/root.c
-rw-r--r--. 1 root root 0 Oct 22 15:59 /home/root.c# 3. 普通用户litao删除root.c(因/home有写权限,成功删除)
[root@bite-alicloud ~]$ su - litao
[litao@localhost ~]$ rm /home/root.c
rm: remove regular empty file '/home/root.c'? y  # 确认删除
[litao@localhost ~]$ ls /home/root.c  # 验证删除
ls: cannot access '/home/root.c': No such file or directory

第3个问题解答以及图示解析

4.2 补充:Linux下的共享文件话题

我们这里再补充一个Linux下共享文件的操作,直接用图片展示给大家

大家在上图中可以发现,我们引入了粘滞位去满足我们的需求解决一些问题,那么下面这个上次遗留下来的问题也可以得到解决了。我们接着来看下个版块吧


五. 粘滞位:解决目录权限 “不科学” 的方案

为了修复 “用户可删除目录内他人文件” 的问题,Linux 引入了粘滞位(Sticky Bit)机制

5.1 功能与设置

给目录添加粘滞位后,该目录下的文件仅能由三类主体删除

  • 超级管理员(root);
  • 该目录的所有者(这点不那么重要,知道就行);
  • 该文件的所有者

设置粘滞位的指令为

chmod +t 目录名

5.2 实际使用案例

简单演示(大家可以自己去试试)

[root@localhost ~]$ chmod +t /home/ # 加上粘滞位
[root@localhost ~]$ ls -ld /home/
drwxrwxrwt. 3 root root 4096 9⽉ 19 16:00 /home/
[root@localhost ~]$ su - yhr
[yhr@localhost ~]$ rm /home/abc.c #yhr不能删除别⼈的⽂件
rm:是否删除有写保护的普通空⽂件 "/home/abc.c"?y
rm: ⽆法删除"/home/abc.c": 不允许的操作

结尾:

umask 与粘滞位,虽同为 Linux 权限体系中的基础组件,却扮演着 “源头管控” 与 “场景防护” 的互补角色,共同构筑起多用户环境下的安全防线。umask 如同一位精准的 “权限过滤器”,以位运算的逻辑从源头屏蔽不必要的开放权限,无论是默认的 022 配置平衡开放与隐私,还是 077 配置保障绝对私密,都让新文件与目录的权限基线始终贴合 “最小特权原则”。而粘滞位则像一把智能的 “共享目录锁”,破解了 “可写性与安全性的权限悖论”,在/tmp等公共目录或团队协作空间中,既保留了多用户的访问协作能力,又通过删除权限的额外校验,确保用户仅能管理自身文件

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

相关文章:

  • Flink+Paimon+StarRocks 构建实时分析
  • 快速搭建网站2020创业平台的选择
  • 使用C#代码添加或删除PPT页面
  • 12个月嵌入式进阶计划ZYNQ 系列芯片嵌入式与硬件系统知识学习全计划(基于国内视频资源)
  • 商务演示专用AI PPT工具深度测评:哪些软件能让汇报更出彩?
  • 公司网站空间做那个免费视频网站
  • 【RabbitMQ的应用】
  • RabbitMQ的使用
  • 从零搭建 C++ 在线五子棋对战项目:从环境到上线,全流程保姆级教程
  • 基于传输熵理论的通信网络拓扑结构推理算法matlab仿真
  • 【基于one-loop-per-thread的高并发服务器】--- 前置技术
  • 企业级调度器 LVS 基础知识总结
  • 多线程异常、MQ、Kafka(八股)
  • 好的做蛋糕网站如何做网站淘客推广
  • 中国风网站建设网站建设信息平台
  • IndexedDB开发示例:面向对象的方式
  • GitLab CI/CD 集成 Harbor 全面教程
  • MySQL慢查询优化实战:从日志分析到SQL重构全流程
  • 每日一练 1(双指针)(单调性)
  • 从云平台到系统内核:SmartMediakit如何重构实时视频系统
  • XC6SLX45T-3FGG484I Xilinx Spartan-6 FPGA
  • 函数栈帧的创建与销毁详解(C语言拓展版)
  • 从 Grok 4 多智能体协同到 RAG 范式革命:2025 年 AI 工作流的技术重构生成
  • Macos系统上搭建Hadoop详细过程
  • 景德镇市城市建设规划网站安徽建设信息网
  • 11.5 LeetCode 题目汇总与解题思路
  • 三维空间变换:矩阵正交规范化的作用
  • E-House市场迎来爆发期?2025年全球规模与投资前景深度分析
  • 【尚庭公寓152-157】[第6天]【配置阿里云号码认证服务】
  • 使用DrissionPage实现携程酒店信息智能爬取