Linux系统篇,权限(二):缺省权限、最终权限的计算、文件隔离的两种方式

系列文章目录

第二章 Linux的权限管理与使用


文章目录

  • 系列文章目录
  • 前言
  • 一、缺省权限
    • [1.1 缺省权限是什么](#1.1 缺省权限是什么)
    • [1.2 权限掩码 umask](#1.2 权限掩码 umask)
      • [1.2.1 umask指令](#1.2.1 umask指令)
      • [1.2.2 运算格式](#1.2.2 运算格式)
      • [1.2.3 umask 目的](#1.2.3 umask 目的)
  • 二、隔离
    • [2.1 用户间的隔离](#2.1 用户间的隔离)
    • [2.2 文件的所属问题](#2.2 文件的所属问题)
    • [2.3 tmp 文件](#2.3 tmp 文件)
      • [2.3.1 t权限 粘滞位](#2.3.1 t权限 粘滞位)
  • 总结

前言

本节是讲解Linux权限的第二节内容,本节将围绕二进制文件权限管理、文件的隔离等内容,这是日后在工程开发中常常使用的东西,让我们开始今天的学习吧。


一、缺省权限

1.1 缺省权限是什么

缺省权限即默认权限,指的是在我们创建文件或目录时系统给其自带的角色权限。

  • 普通文件: 起始权限为666,默认不执行
  • 目录文件: 起始权限为777,默认带x

但是我们创建文件时却不是如上的默认权限,如图中:普通文件664,目录文件775。甚至你们创建时与我的也不一样,这是因为系统存在一个权限掩码的概念。

1.2 权限掩码 umask

系统中的权限掩码是机器中可设定的一种01二进制串,它和起始权限共同决定了创建文件的最终权限,因此有以下公式。

最终权限 = 起始权限 & (~unmask)

1.2.1 umask指令

  • 语法: umask [选项] [掩码值]
  • 功能: 查看或设置新建文件、目录的默认缺省权限掩码,控制系统创建文件和目录时的初始权限
  • 常用选项 / 用法:

umask :直接查看当前默认权限掩码
umask 数字 :临时修改权限掩码,仅当前终端会话生效

当然不同用户的umask不是一样的。

1.2.2 运算格式

这里来进行验证看看是不是这个理论。八进制0002 转为二进制为000000010 取反为 111111101 与 111111111 按位与 ,结果为111 111 101 即775,与上方的目录权限一致。

1.2.3 umask 目的

凡是在umask中出现的权限,就不应该再最终文件中出现,这是因为取反为0,再与不管是1还是0,最终都是0,因此取消该文件的特点权限。

  1. 系统灵活性: 默认权限由系统决定无法在创建前修改,而umask可配置实现了权限的自定义。
  2. 可控性:特殊情况下,可以控制文件的默认权限,保持文件权限的一致性。

二、隔离

2.1 用户间的隔离

在我们登录时会发现直接处于家目录,在这种家目录中可以发现每有一个用户就会自动新建一个以用户名命名的文件 ,而这文件具有着拥有者和所属组都是自身的特性,并且限制任何其他用户无法进入。

2.2 文件的所属问题

有这样一种现象:在我们的目录下,有这样一个文件,它对所有的角色权限都设置为000,我们既不可以读也不可以写,那我们能否对它进行删除呢?

答案是可以删除,因为这是在目录中操作文件的,与文件本身的权限没有关系,只需要看文件所处目录是否具有w权限即可。

但这样的情况是很少的,相等于别人到我家里,对我进行限制,我直接可以报警抓走他。

2.3 tmp 文件

既然如此,文件不应该随便放在别人的目录下,那放在自己的家目录下是否能一劳永逸? 确实可以成功地解决他人对自己文件的操作,但若两个用户之间需要多次文件间的协作时又显得无能为力。那么系统自带的tmp目录就发挥了巨大作用(/tmp)。

*  我们在该目录中创建文件,因需要让他人操作,所以将其他人的权限全部放开,这样实现了文件的共享。*

但再想想万一有一天这个人变成竞争者后,想把我们创建的文件删除,这是可以的吗?其实是可以的,因为与该目录是否有w权限有关。那这就很奇怪了,之前那种情况是在自己根目录下的就要受主人管理,而这种情况如何解决呢?

2.3.1 t权限 粘滞位

因此,我们需要这样的要求---------任何人都能新建文件且只有自己能够删除自己的文件。而w的修改根本实现不了这个需求,为实现以上需求 "t 权限" 出现了。

chmod +t 文件名

此时就成功地实现了以上的需求,删除不了非自己创建的文件了。

我们在日常中使用系统创建的tmp目录共享即可。


总结

本节的权限讲解就到此位置了,内容不多但都是面试时常考重点,希望大家好好消化,我们下一节将进入开发工具的安装与使用,感谢您的阅读,我们下节再见。

相关推荐
云水一下1 小时前
黑客的“猜密码”游戏:SSH暴力破解实战与Linux安全加固
linux·渗透测试·ssh·暴力破解
kebidaixu1 小时前
OK3568开发板更新Ubuntu22.04方法总结
linux·运维·服务器
是桃萌萌鸭~2 小时前
oracle的隐藏虚拟列详解
运维·数据库·oracle
晚风予卿云月2 小时前
【Linux】Linux2.6 O(1)调度器超详解 | 进程切换+内核链表 | 面试必背
linux·运维·面试
一只小白0002 小时前
一篇讲清TCP的三次握手&四次挥手
服务器·网络·tcp/ip
Mike117.2 小时前
GBase 8a 物化视图依赖和 DDL 风险排查记录
java·服务器·前端
折哥的程序人生 · 物流技术专研2 小时前
出版社物流WMS智能调度实战(三):从“卡死”到“跑稳”——WMS机器学习运维监控与自动回滚实战
运维·人工智能·机器学习·架构·人机交互
tang777892 小时前
2026年国内代理IP服务商横向测评:企业级爬虫如何选型?
运维·服务器·网络·爬虫·python·代理
Agent产品评测局2 小时前
传统RPAvsAI Agent,制造业生产场景能力对比详解 —— 2026企业级自动化选型全景盘点
运维·人工智能·ai·chatgpt·自动化