OS9.【Linux】基本权限(下)

article/2025/7/22 8:02:31

目录

1.默认权限

掩码

修改权限掩码

目录的权限说明

r权限

w权限

x权限

结论

家目录权限

2.共享目录

粘滞位t 


承接OS8.【Linux】基本权限(上)文章

1.默认权限

创建用户时拥有者所属组都是该用户,而且对其他人没有任何权限

掩码

新建文件new.txt1和目录folder后,立刻查看它们的权限:

显示目录的默认权限:775

显示普通文件的默认权限:664

思考:为什么会出现以上默认的权限?

其实:系统提供普通文件的默认权限是666,而目录的默认权限是777,664与666不同的原因和775和777不同的原因和权限掩码umask有关

输入umask命令:

umask

只看后3位002,最左侧的0不管,给出以下规则:

在umask出现的权限(二进制位为1)不会在最终的文件权限中出现,而umask中未出现的权限(二进制位为0)保持起始的权限位

推测最终权限是掩码和起始权限通过某运算规则得到的,

这个运算规则是:最终权限=原始权限&(~掩码)

也可以变形为~(~原始权限|掩码),使用德摩根定律

P\land{\neg{Q}}=\neg({\neg}P\lor{Q})

 写一个简单的程序验证下:

#include <stdio.h>
int main()
{printf("%d", 666 & (~002));return 0;
}

运行结果:

#include <stdio.h>
int main()
{printf("%d", ~(~666|002));return 0;
}

  运行结果:

修改权限掩码

例如修改成0123:

umask 0123

目录的权限说明

使用控制变量法,逐个尝试,设目录folder里面有test.txt文件

r权限

先禁掉w和x权限:

chmod u+r-wx,g+r-wx,o+r-wx folder

 查看目录中的文件:只知道文件名,但不知道文件的权限

无法查看test.txt的内容:

无法向test.txt写入内容写入内容:

不允许进入目录:

w权限

先禁掉r和x权限:

chmod u+w-rx,g+w-rx,o+w-rx folder

无法查看目录中的文件:

无法向test.txt写入内容写入内容:

不允许进入目录:

x权限

先禁掉r和w权限:

chmod u+x-rw,g+x-rw,o+x-rw folder

无法查看目录中的文件: 

尝试向test.txt写入内容:可以写入,能打印到显示器上

可以进入目录里:

结论

可执行权限x: 如果目录没有可执行权限, 则无法cd到目录中;

可读权限r: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容;

可写权限w: 如果目录没有可写权限, 则无法在目录中创建、更改或删除文件.

-->一个文件是否能被删除,不由文件本身决定,而由其所处的目录决定

家目录权限

普通用户的家目录权限是700,也就意味着一个普通用户无法访问另一个普通用户的目录,但root除外,其有最高权限

2.共享目录

如果多个普通用户想共享一个目录,则这个共享目录不能在任何一个人的家目录下

现以root身份创建共享目录shared:

粘滞位t 

为了防止其他用户删除目录中的文件,

1.shared目录中,对other去掉权限w是不能解决问题的,由上述对w权限的分析,这样就无法创建文件,

2.缺点:只能以root身份建立共享目录,且只有以root身份才能增删改查,例如上方提到的shared目录

解决方法:根目录下有一个自带的tmp目录,可以在其中对用户各自的文件进行增删改查操作,其中权限中的t为粘滞位(可以通过chmod o+t设置),是特殊的x权限,当前认为: 只有root和拥有者能删除文件,其他人都不允许

例如以guest身份创建一个test.txt,切换为zhang身份却发现无法删除test.txt


http://www.hkcw.cn/article/UQgiUZcGhU.shtml

相关文章

【容器docker】启动容器kibana报错:“message“:“Error: Cannot find module ‘./logs‘

说明&#xff1a; 1、服务器数据盘挂了&#xff0c;然后将以前的数据用rsync拷贝过去&#xff0c;启动容器kibana服务&#xff0c;报错信息如下图所示&#xff1a; 2、可能是拷贝docker文件夹&#xff0c;有些文件没有拷贝过去&#xff0c;导致无论是给文件夹授权用户kibana或者…

【25-cv-05917】HSP律所代理Le Petit Prince 小王子商标维权案

Le Petit Prince 小王子 案件号&#xff1a;25-cv-05917 立案时间&#xff1a;2025年5月28日 原告&#xff1a;SOCIETE POUR LOEUVRE ET LA MEMOIRE DANTOINE DE SAINT EXUPERY - SUCCESSION DE SAINT EXUPERY-DAGAY 代理律所&#xff1a;HSP 原告介绍 《小王子》&#x…

信创国产化

一、硬件国产化 1. 飞腾E2000Q 二、操作系统国产化 1. 麒麟系统 1.1 麒麟嵌入式支持飞腾E2000Q 1.1.1 启动安装盘制作 1. 下载rufus工具,安装,下载麒麟系统ISO镜像文件。 2. 使用rufus制作启动盘,U盘插入(注先备份数据,会格式化盘符),配置参数如图。 3. 点击…

一、Sqoop历史发展及原理

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月30日 专栏&#xff1a;Sqoop教程 在大数据时代&#xff0c;数据往往分散存储在各种不同类型的系统中。其中&#xff0c;传统的关系型数据库 (RDBMS) 如 MySQL, Oracle, PostgreSQL 等&#xff0c;仍然承载着大量的关键业务…

2.从0开始搭建vue项目(node.js,vue3,Ts,ES6)

从“0到跑起来一个 Vue 项目”&#xff0c;重点是各个工具之间的关联关系、职责边界和技术演化脉络。 从你写代码 → 到代码能跑起来 → 再到代码可以部署上线&#xff0c;每一步都有不同的工具参与。 &#x1f63a;&#x1f63a;1. 安装 Node.js —— 万事的根基 Node.js 是…

包管理工具

npx工具 npx是什么捏&#xff1f; npx是npm5.2之后自带的一个命令 npx的作用非常之多&#xff0c;但是比较常见的是它用来调用项目中的某个模块的指令 现在假设一个场景&#xff1a; 你在项目里安装了webpack&#xff0c;也在全局中安装了webpack&#xff0c;但是这俩版本…

信号发生器幅值和偏置设置

Vrms是有效幅度 Vpp是幅度峰峰值 Vp是幅度最大值 幅度 2Vpp, 偏置 0V: 信号范围&#xff1a; -1V (谷底) 到 1V (峰顶) -> 中心点在 0V。 幅度 2Vpp, 偏置 1V: 信号范围&#xff1a; (-1V 1V) 0V (谷底) 到 (1V 1V) 2V (峰顶) -> 中心点在 1V。 形状和 Vpp (2…

深入浅出:Spring IOCDI

什么是IOC IOC IOC(Inversion of Control)&#xff0c;是一种设计思想&#xff0c;在之前的SpringMVC里就在类上添加RestController和Controller注解就是使用了IOC&#xff0c;这两个注解就是在Spring中创建一个对象&#xff0c;并将注解下的类交给Spring管理&#xff0c;Spr…

Java并发

一、进程和线程 进程&#xff1a; 程序的一次执行过程&#xff0c;是系统运行程序的基本单位&#xff0c;因此进程是动态。系统运行一个程序即是一个进程从创建&#xff0c;运行到消亡的过程。 在Java中&#xff0c;当我们启动main函数时其实就是启动了一个JVM进程&#xff…

通过回调函数注册定时器触发事件

1、说明 使用回调函数&#xff0c;注册定时器触发事件的模式&#xff0c;提高定时器中断的可操作性&#xff0c;那如何实现呢&#xff1f; 2、.h文件 下面是定时器句柄的声明 3、.c文件 3.1、静态定时器句柄头 3.2、定时器回调函数处理 下面的函数是放在1ms的中断中的&#…

Visual Studio+SQL Server数据挖掘

这里写自定义目录标题 工具准备安装Visual studio 2017安装SQL Server安装SQL Server Management Studio安装analysis service SSMS连接sql serverVisual studio新建项目数据源数据源视图挖掘结构部署模型设置挖掘预测 部署易错点 工具准备 Visual studio 2017 analysis servi…

大模型-attention汇总解析之-MHA

一、MHA(Multi-Head Attention) 1.1 MHA 原理 MHA&#xff08;Multi-Head Attention&#xff09;称为多头注意力&#xff0c;开山之作所提出的一种 Attention 计算形式&#xff0c;它是当前主流 LLM 的基础工作。在数学原理上&#xff0c;多头注意力 MHA 等价于多个独立的单头…

历年上海交通大学计算机保研上机真题

2025上海交通大学计算机保研上机真题 2024上海交通大学计算机保研上机真题 2023上海交通大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school String Match 题目描述 Finding all occurrences of a pattern in a text is a problem that arises freq…

DeepSeek-R1-0528-Qwen3-8B 本地ollama离线运行使用和llamafactory lora微调

参考: https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B 量化版本: https://huggingface.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally 1、ollama运行 升级ollama版本到0.9.0 支持直接…

数字人革新教育:开启智慧教学新时代

随着人工智能技术的迅猛发展&#xff0c;数字人正在逐步走进教育领域&#xff0c;成为传统教学模式的颠覆者。广州深声科技有限公司&#xff08;以下简称“深声科技”&#xff09;凭借其在智能语音、数字人及多模态交互等核心技术上的深厚积累&#xff0c;推出了一系列创新性产…

Linux操作系统之进程(四):命令行参数与环境变量

目录 前言&#xff1a; 什么是命令行参数 什么是环境变量 认识环境变量 PATH环境变量 HOME USER OLDPWD 本地变量 本地变量与环境变量的差异 核心要点回顾 结语&#xff1a; 前言&#xff1a; 大家好&#xff0c;今天给大家带来的是一个非常简单&#xff0c;但也十…

IDA dumpdex经典脚本(记录)

一个dumpdex的IDA插件 毕业了,暂时用不着了,存起来 import idaapi import structdef dumpdex(start, len, target):rawdex idaapi.dbg_read_memory(start, len)fd open(target, wb)fd.write(rawdex)fd.close()def getdexlen(start):pos start 0x20mem idaapi.dbg_read_mem…

第2期:APM32微控制器键盘PCB设计实战教程

第2期&#xff1a;APM32微控制器键盘PCB设计实战教程 一、APM32小系统介绍 使用apm32键盘小系统开源工程操作 APM32是一款与STM32兼容的微控制器&#xff0c;可以直接替代STM32进行使用。本教程基于之前开源的APM32小系统&#xff0c;链接将放在录播评论区中供大家参考。 1…

Redis的安装与使用

网址&#xff1a;Spring Data Redis 安装包&#xff1a;Releases tporadowski/redis GitHub 解压后 在安装目录中打开cmd 打开服务&#xff08;注意&#xff1a;每次客户端连接都有先打开服务&#xff01;&#xff01;&#xff01;&#xff09; 按ctrlC退出服务 客户端连接…

Redis 难懂命令-- ZINTERSTORE

**背景&#xff1a;**学习的过程中 常用的redis命令都能快速通过官方文档理解 但是还是有一些比较难懂的命令 **目的&#xff1a;**写博客记录一下&#xff08;当然也可以使用AI搜索&#xff09; 在Redis中&#xff0c;ZINTERSTORE 是一个用于计算多个有序集合&#xff08;So…