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

Linux中常见的权限问题

目录

  • 前言
  • 1. 目录权限
  • 2. umask
  • 3. 粘滞位
  • 结语


前言

在了解完上一篇文章 Linux权限的理解与操作 之后,还有一些比较常见的权限问题需要我们去了解。其中包括目录的权限,umask 以及 粘滞位的使用。


1. 目录权限

问题一:进入一个目录,需要什么权限? —— 可执行权限(x)

问题二:查看目录下的文件列表,需要什么权限? —— 读权限(r)

问题三:在目录中创建文件或目录,需要什么权限? —— 写权限(w)


2. umask

首先,我们需要清楚,在 Linux 下默认,一个目录被创建,起始权限是从:777,而一个普通文件被创建,起始权限是从::666 (注意:这里强调的都是起始权限!)

那……什么是 umask呢?—— umask 可以称为权限掩码,我们可以理解为,凡事在 umask 中出现的权限,都不应该出现在文件或目录的最终权限中。

在这里插入图片描述

在命令行中,我们也可以通过 umask 来查看当前的权限掩码是多少,而系统默认的 umask 的值就是0002

在这里插入图片描述

但是我们又可以看到,我们所创建出来的文件或者目录,它们的默认权限,都不是上述所提到的起始权限。目录的默认权限为 775,文件为664,与 Linux 规定的起始权限对不上啊,那我们所看到的默认权限是如何得到呢??

联想到 umask 的值为 0002,我们以目录来举例,目录的起始权限为777,权限掩码为002,起始权限减去 umask 刚好不就是我们所看到的目录的默认权限吗!!??

但是这样去推断默认权限与起始权限之间的关系,是不正确的!

我们创建出来的目录或文件,他们的最终权限的算法可以表示为:最终权限 = 起始权限 & (~umask)

我们同样以目录为例,给大家做一下演示:
在这里插入图片描述

其实我们不难发现,最终权限的本质就是,将起始权限中umask为1的二进制位变为0,就是我们所看到的最终权限。

如果我们想根据自己的需求来修改目录或者文件的最终权限的话,我们也可以通过修改 umask 的值来达到修改创建目录或文件时的默认权限。

在这里插入图片描述
我们可以看到,当我们将 umask 的值修改为太极端时(比如777),再根据最终权限的算法,就会出现创建出来的文件或目录的权限都为空的情况,所以在修改 umask 这件事上,一般的建议是,根据实际需求修改即可


3. 粘滞位

在讲粘滞位之前,我们需要再对权限先做一些铺垫,以方便我们了解清楚粘滞位的作用。

示例一:

在这里插入图片描述

示例二:

在这里插入图片描述

因此我们可以先得出一个结论:删除一个文件,参考的不是当前用户对该文件是否具有读权限,而是参考当前用户对于该文件所在目录是否具有读权限, 如果当前用户对该文件所在的目录没有读权限,即便对该文件具有读权限,也无法删除该文件!

示例三:

在这里插入图片描述

因此,我们又一次证明了上述结论,删除文件参考的是当前执行操作的用户对该文件所在目录是否具有读权限,而不依赖于对该文件对自己的权限,即便自己不是文件的拥有者,依旧可以删除该文件。

正是由于该种情况的存在,导致了一些问题隐患:
例如,在公司时,一定是存在需要几个人或者几十个人一起共同为了维护一个项目而成立的团队,而每个团队或许会有一个公共使用的目录,为了使团队各成员能够在该目录下进行正常工作,那么就需要对团队成员都开放该目录的读写执行权限。根据示例三,我们如果不需要让除了自己的其他人查看自己的文件,甚至修改自己的文件,我们可以将文件所对应的角色的权限清除,以达到该目的。但是!又根据上述所提及的,删除一个文件参考的并不是该用户对文件是否具有读权限,只要该用户对文件所在目录具有读权限,那么就能够删除该目录中的所有文件!所以……这不就扯淡了吗???

大家都在一个目录下共事,我可以阻止其他人查看或者修改我的文件,但是,我无法阻止其他人删除我的文件!

而上述这种情况,在 linux 系统中也有具体的体现。

在这里插入图片描述
在系统的根目录中,存在一个tmp目录,该目录即为linux中的所有用户共享。

对于多用户在同一个目录环境下共事且各用户都具有对该目录的读写执行权限的情况下,为了解决其他人能够删除自己的文件的问题,如果我们将该目录的读权限去除掉,那么确实解决了其他人无法删除自己文件这个问题。但是!同时其它人,包括自己,都无法在这个目录下创建以及修改文件,那么如何达到共事的目的呢?

所以,为了很好的解决这个问题,在 Linux 中,就有了粘滞位的存在。粘滞位通俗来讲,就是使所有用户均有在该目录读写执行的权限,但无法删除其它用户所创建的文件!


对目录添加粘滞位:

chmod +t 目录名
//这里不需要指定u或者g,直接 +t 即可

粘滞位的效果演示:

在这里插入图片描述

但是这里需要注意的是:粘滞位只能给目录设置!
同时,粘滞位的添加或删除,都只能由创建该目录的用户执行,也即拥有者,而一般情况下,需要创建具有粘滞位的目录,通常为 root 用户。


结语

关于 Linux 中常见的权限问题全部讲完,如果该文章能给你带来一定的帮助,或者是收获,我很开心。
同时,觉得对你有帮助的伙伴们,也可以 点赞👍 + 收藏⭐️ + 关注➕ 支持一下!
感谢各位观看!!

相关文章:

Linux中常见的权限问题

目录 前言1. 目录权限2. umask3. 粘滞位结语 前言 在了解完上一篇文章 Linux权限的理解与操作 之后,还有一些比较常见的权限问题需要我们去了解。其中包括目录的权限,umask 以及 粘滞位的使用。 1. 目录权限 问题一:进入一个目录&#xff0…...

【技术分享】RK356X Ubuntu 推流USB摄像头

本文适用与触觉智能所有RK356X ubuntu系统的主板。 IDO-SBC3566基于瑞芯微RK3566研发的一款高性能低功耗的智能主板,采用四核A55,主频高达1.8GHz,专为个人移动互联网设备和AIOT设备而设计,内置了多种功能强大的嵌入式硬件引擎,为…...

介绍一下rabbitMq应用场景

任务队列:RabbitMQ可以将待处理的任务放入队列中,再由多个工作进程异步地执行这些任务。 日志处理:RabbitMQ可以通过发布-订阅模式将日志消息分发到多个消费者,并可以灵活地控制消息的优先级和过滤条件。 实时消息处理&#xff…...

IoT 物联网共享充电桩场景中设备资产定位和地理围栏开发实践

基于经纬度的设备资产定位和地理围栏在物联网场景中应用广泛 01 物联网 GEO 场景架构方案 首先,IoT 终端设备通过卫星定位模块获取当前经纬度;然后,将坐标信息实时上报到物联网平台;最后,存储到 Redis GEO 数据库中。 …...

【Qt进阶之自定义控件】使用QListWidget实现自定义Item效果

目的 Q:如何在Qt库的基础上,实现自定义控件呢? A:根据官方文档回答,就是继承需实现的控件,然后实现自定义功能。 以下是实现QListWidget控件的自定义item。 先看下最终效果是如何: listItem 主…...

【iOS】UITableView总结(Cell的复用原理、自定义Cell、UITableViewCell协议方法)

UITableView 列表的特点: 数据量大样式较为统一通常需要分组垂直滚动通常可视区只有一个 -> 视图的复用 UITableViewDataSource UITableView作为视图,只负责展示,协助管理,不管理数据 需要开发者为UITableView提供展示所需…...

shell之常见网络命令介绍

shell之常见网络命令介绍 1)ifconfig 用于配置网络接口。可以用于开启、关闭和设置网络接口的参数,如IP地址、子网掩码、MAC地址等。 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up上述命令将设置eth0网络接口的IP地址为192.168.1.1,子…...

Android屏幕刷新机制

基础知识 CPU运行在Android设备上的中央处理器(Central Processing Unit)是Android设备的核心组件之一,负责执行计算和控制设备的各种操作。 Android设备上的CPU通常采用ARM架构,如ARM Cortex-A系列处理器。这些处理器具有高性能…...

Python学习第3天-第一个Python程序

文章目录 前言一、创建项目二、创建程序总结 前言 下面给大家展示下经典的Hello World! 一、创建项目 二、创建程序 print("Hello World!")总结 回到顶部 学习网站 欢迎来到Python的世界!...

Golang网络

golang游戏服务器框架 在Go语言中,有许多优秀的游戏服务器框架,以下是一些比较流行的框架: Leaf:一个轻量级的游戏服务器框架,支持多进程、分布式、热更新等特性。它提供了一些常用的组件,如网络层、定时器、数据库等等,可以帮助开发者快速构建游戏服务器。go-ethereum…...

[swift刷题模板] 树状数组(BIT/FenwickTree)

[TOC]([swift刷题模板] 树状数组(BIT/FenwickTree) ) 一、 算法&数据结构 1. 描述 [python刷题模板] 树状数组 二、 模板代码 1. 单点赋值(增加),区间求和(PURQ) 例题: 307. 区域和检索 - 数组可修改 class BIT {var c: [Int]var n: Int init(_ n: Int){c…...

​CUDA学习笔记(三)CUDA简介

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/,仅用于学习。 前言 线程的组织形式对程序的性能影响是至关重要的,本篇博文主要以下面一种情况来介绍线程组织形式: 2D grid 2D block 线程索引 矩阵在memory中是row-major线性…...

RK3568笔记三:基于ResNet18的Cifar-10分类识别训练部署

若该文为原创文章,转载请注明原文出处。 本篇文章参考的是野火-lubancat的rk3568教程,本篇记录了在正点原子的ATK-DLK3568部署。 一、介绍 ResNet18 是一种卷积神经网络,它有 18 层深度,其中包括带有权重的卷积层和全连接层。它…...

块状数据结构学习笔记

分块 分块的思想和珂朵莉树很类似,就是把原序列分成若干个块,对块进行操作的奇妙思想。复杂度通常带根号。分块的块长也有讲究,通常对于大小为 n n n 的数组,取距离 n \sqrt n n ​ 最近的 2 2 2 的幂数或直接取 n \sqrt n n…...

DOM4J解析.XML文件

<?xml version"1.0" encoding"utf-8" ?> <books><book id"SN123123413241"><name>java编程思想</name><author>华仔</author><price>9.9</price></book><book id"SN1234…...

黑豹程序员-架构师学习路线图-百科:MVC的演变终点SpringMVC

MVC发展史 在我们开发小型项目时&#xff0c;我们代码是混杂在一起的&#xff0c;术语称为紧耦合。 如最终写ASP、PHP。里面既包括服务器端代码&#xff0c;数据库操作的代码&#xff0c;又包括前端页面代码、HTML展现的代码、CSS美化的代码、JS交互的代码。可以看到早期编程就…...

二、BurpSuite Intruder暴力破解

一、介绍 解释&#xff1a; Burp Suite Intruder是一款功能强大的网络安全测试工具&#xff0c;它用于执行暴力破解攻击。它是Burp Suite套件的一部分&#xff0c;具有高度可定制的功能&#xff0c;能够自动化和批量化执行各种攻击&#xff0c;如密码破解、参数枚举和身份验证…...

solidworks 2024新功能之-让您的工作更加高效

您可以创建杰出的设计&#xff0c;并将这些杰出的设计将融入产品体验中。为了帮您简化和加快由概念到成品的产品开发流程&#xff0c;SOLIDWORKS 2024 涵盖全新的用户驱动型增强功能&#xff0c;致力于帮您实现更智能、更快速地与您的团队和外部合作伙伴协同工作。 SOLIDWORKS…...

华为eNSP配置专题-VRRP的配置

文章目录 华为eNSP配置专题-VRRP的配置0、参考文档1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、基本终端构成和连接 2.VRRP的配置2.1、PC1的配置2.2、接入交换机acsw的配置2.3、核心交换机coresw1的配置2.4、核心交换机coresw2的配置2.5、配置VRRP2.6、配置出口…...

LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块

常量 常量 类型 解释 lcd.font_opposansm8 font 8号字体 lcd.font_unifont_t_symbols font 符号字体 lcd.font_open_iconic_weather_6x_t font 天气字体 lcd.font_opposansm10 font 10号字体 lcd.font_opposansm12 font 12号字体 lcd.font_opposansm16 font…...

深度解密Jsxer:JSXBIN反编译器的技术原理与工程实现

深度解密Jsxer&#xff1a;JSXBIN反编译器的技术原理与工程实现 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer 在Adobe创意套件生态中&#xff0c;ExtendScript二进制格式&#xff08;JSXBIN&…...

iOS开发工程师核心技术解析与面试指南

一、iOS开发核心技术体系 1.1 语言基础与开发框架 Objective-C与Swift作为iOS生态的双核心语言,开发者需掌握其核心特性: 内存管理机制:ARC自动引用计数原理 运行时特性:Runtime消息转发机制 多线程编程:GCD与OperationQueue对比 典型内存管理场景: class DataProcess…...

如何快速解决C盘空间不足问题:Windows Cleaner终极系统优化指南

如何快速解决C盘空间不足问题&#xff1a;Windows Cleaner终极系统优化指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你的Windows电脑是否经常出现C盘爆红警…...

2025届毕业生推荐的十大降重复率平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 我们能够通过文本重构来有效降低检测风险&#xff0c;针对的是维普系统对AI生成内容的识别机…...

【ABAP】ALV可编辑表格数据同步与持久化实战

1. ALV可编辑表格数据同步问题解析 最近在ABAP开发社区里&#xff0c;我看到不少同行都在讨论ALV可编辑表格的数据同步问题。这个问题确实挺有意思的&#xff0c;我自己在实际项目中也遇到过类似情况。想象一下这个场景&#xff1a;用户在ALV表格里愉快地敲着键盘&#xff0c;用…...

3分钟掌握B站视频备份:m4s转MP4完整教程

3分钟掌握B站视频备份&#xff1a;m4s转MP4完整教程 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过B站视频突然下架&#xff0…...

基于Qwen-Image-Edit-F2P的Java开发者AI图像应用实战

基于Qwen-Image-Edit-F2P的Java开发者AI图像应用实战 最近在做一个电商后台项目&#xff0c;产品经理提了个需求&#xff0c;希望用户上传商品主图后&#xff0c;系统能自动生成不同风格的营销海报。团队里没有专门的前端设计师&#xff0c;后端又都是Java老手&#xff0c;大家…...

告别裸机喂狗:在STM32G474上用FreeRTOS任务优雅管理IWDG看门狗

基于FreeRTOS的STM32G474看门狗高可靠管理架构设计 在嵌入式系统开发中&#xff0c;看门狗定时器&#xff08;WDT&#xff09;是确保系统可靠性的最后一道防线。当我们在STM32G474这样的高性能微控制器上运行FreeRTOS时&#xff0c;传统的裸机喂狗方式往往隐藏着致命缺陷——某…...

扔掉你的Token账单吧,荣耀YOYO Claw技术把养虾成本打下来了

梦瑶 发自 凹非寺量子位 | 公众号 QbitAI2026年&#xff0c;AI圈最火的产品火不过龙虾&#xff0c;最热的词热不过词元&#xff08;Token&#xff09;。火到让养虾人排百米长队装虾&#xff0c;也热到嘛&#xff0c;让不少养虾人「直犯难」——上手配置难、安全保障难、Tokens狂…...

密码安全不再难:qxresearch-event-1随机密码生成器实现原理

密码安全不再难&#xff1a;qxresearch-event-1随机密码生成器实现原理 【免费下载链接】qxresearch-event-1 Python hands on tutorial with 50 Python Application (10 lines of code) By xiaowuc2 项目地址: https://gitcode.com/gh_mirrors/qx/qxresearch-event-1 q…...