linux 文件的权限

修改文件的权限

我这里有一个test.txt 文件,我们ll 查看一下该文件相应的属性信息
在这里插入图片描述
在这里插入图片描述
其中,权限的位置是相对固定的即:
第一个位置是r 权限,代表可读权限。
第二个位置是w权限,代表可修改权限。
第三个位置是x权限,代表可执行权限。

我们这样玩,如果位置上的权限存在,我们就记为1 如果不存在我们就记为0
这样一来,上面的图就改成了这样:
在这里插入图片描述
我们把上面的结论总结一下:
--- 是: 000
rw- 是: 110
r-- 是: 100

我们再操作一下,上面的01 有点像二进制呀,发现没。那我们干脆就把上面的数看成二进制数。
看成二进制数之后,我们可以进制转化一下,把二进制转化为8进制

哎, 你会想为什么要转化成8进制,为什么不转化成其他进制?
因为:上面一个人的权限是由3个部分组成的(r w x)
3 个部分即 3 个比特位,数据取值范围是:0~7,所以是转化为8进制

好,由上,我们再来整理一下:
--- 是: 000 转化——>0

rw- 是: 110 转化——>6

r-- 是: 100 转化——>4

提一下:
rwx111 转化——>7

好了,那么我们再来整理一下吧:
在这里插入图片描述
这种用8进制 来表示权限的办法也是可以再linux的命令行里直接用的,比如:
在这里插入图片描述

看权限就被改了

修改文件的拥有者

sudo chown xxx(把文件给谁) xxx(给的文件)
比如:下面这个文件是我的
在这里插入图片描述
我要把这个文件给root
使用:sudo chown root test.txt

在这里插入图片描述

修改文件的所属组

在这里插入图片描述
sudo chgrp xxx(给谁) xxx(文件是什么)
用以上的例子举例:
sudo chgrp root test.txt

在这里插入图片描述

如何同时修改拥有者和所属组

sudo chown 拥有者:所属组 要修改的文件
在这里插入图片描述
使用:sudo chown xiaochen:xiaochen test.txt
在这里插入图片描述

研究一下文件的默认权限

我们先创建了两个文件:test.txt, text1.txt和两个目录:dirdir1 我们会发现这些文件和目录都有默认的权限,
在这里插入图片描述

观察上面的文件权限,我们在转化一下,即:利用我之前讲的转化一下,把权限转换成8进制来表示。

在Linux下我们创建一个文件,如果这个文件是目录的话,那么它的起始权限是从777开始的,如果这是个文件是一个普通文件,那么它的起始权限是从666开始的。
Linux系统中是允许我们自己来设置默认的权限值的。如果我们要自己设置权限的默认值,那么这个时候我们要引进一个新的概念,叫权限掩码
那么什么是权限掩码呢?
我们可以通过下面这串指令来看看我们当前的权限掩码是多少。
umask
在这里插入图片描述

在输出的权限掩码的结果中,第一个零我们不考虑,我们只考虑后面的三位数即:002。
同时我们也可以使用umask来修改我们当前的权限掩码。

在这里插入图片描述

当我们修改了权限掩码之后,我们的默认权限也会跟着受到修改。但他们之间的关系并不是
你将权限掩码修改为0004后,默认权限也会变成0004。(这样想是错的)
你将权限掩码修改为0004后
新的默认权限=原先的默认权限-权限掩码(这样想也是错的)
正确的是:
新的默认权限(二进制的形式)= 原来的默认权限(二进制的形式) & (~权限掩码)(二进制的形式)
&:表示的是逻辑与。
~:表示的是按位取反。

目录的权限分析

像平常我们用touch指令创建一个文件。这个文件会有读 写和可执行的相关权限。但是如果我们用mkdir来创建一个目录文件,这个目录文件也会有读写和可执行的相关权限。
这个时候你会不会感到很迷惑?
普通文件有读写和可执行的权限我们还能理解。
就像在Windows中我们可以读一个文档,在这个文档里面写东西,如果这个文档是一个点c的源程序,我们可以执行这个文件,但是目录,Windows中从来没有什么读目录,写目录,执行这个目录。
目录?读?写?和可执行?
你会感到疑问,目录的读是什么意思?目录的写是什么意思?可执行目录又是什么意思?
来,我们来分析一下。
当你用mkdir创建一个目录的时候。
如果你要进入这个目录,你需要的是x权限即可执行权限。如果缺少这个权限,你将无法进入此目录。
如果你想查看这个目录下的文件信息,你需要的是可读权限即:r权限。如果你缺少这个权限的话,当你用ls查看当前目录下的文件的时候,你的请求会被拒绝。
如果你想要在这个目录下创建新的文件或者删除以前的文件。你需要的是可修改权限即:w权限。 如果缺少这个权限,在当前目录下,当你使用touch命令或mkdir命令的时候,你的请求会被拒绝。

我们知道一个文件一定是属于一个目录的。
一个文件有读写和可执行的权限。
一个目录也有读写和可执行(可进入)的权限。
由之前的分析我们可以知道一个文件能否被查看,能否被写入,能否被删除,是由目录的权限来决定的。
如果目录没有x权限,那你都无法进入这个目录。
如果目录没有r权限那你无法查看这个目录下的所有文件。
如果目录没有w权限,那里无法删除这个目录下的文件并无法在这个目录下创建文件。
但是一个文件能否被修改,可以由文件的权限来决定,因为目录是没法修改文件的,目录的权限只能约束你来删除这个文件,或者查看这个文件的属性。目录的权限是没办法修改文件的内容的。

一个文件是属于一个目录的,一个文件能不能删除不是由这个文件本身决定的,而且由这个文件所处在的目录决定的,如果这个目录赋予了相应的账号有w权限。那么这个相应的账号的人就可以删除你这个文件。
这个时候你会感到疑惑。
你说你创建一个新目录。
这个新的目录虽然给了other组有w的权限。
但是这个目录下你创建的文件并没有给otherw的权限。
难道这样other也能删除这个目录下的文件吗?
对,也可以删。
如上所说,一个文件能否被删除不是由这个文件来决定的,而是由这个文件所在的目录来决定的。虽然你这个文件没有给other组w的权限。但是当前文件所在的目录给了other组w的权限。那么other组的人就可以把你这个文件删除掉。

在这里插入图片描述
同理:
如果目录没有给other组w的权限,该目录下的文件给了other组w的权限,如果要删除这个文件的话,也是没办法删除的,因为你的目录没有给Other组w的权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/76173.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSL 证书过期巡检脚本 (Python 版)

哈喽大家好,我是咸鱼 之前写了个 shell 版本的 SSL 证书过期巡检脚本 (文章:《SSL 证书过期巡检脚本》),后台反响还是很不错的 那么今天咸鱼给大家介绍一下 python 版本的 SSL 证书过期巡检脚本 (完整代码…

本地mvn仓库清理无用jar包

背景 开发java时间久了,本地的m2仓库就会产生很多过期的jar包,不清理的话比较占空间。 原理 是通过比较同一目录下,对应jar包的版本号的大小,保留最大版本号那个,删除其他的。 脚本 执行脚本见文章顶部 执行方式 …

mac使用mvn下载node-sass 会Binary download failed, trying source

m1 上使用nvm 以下node的版本可以直接下载(Binary download,而不是 trying source)而不用切换mac cpu架构 zhiwenwenzhiwenwendeMBP cockpit % nvm install 14.15.5 Downloading and installing node v14.15.5... Downloading https://node…

华为云hcip核心知识笔记(存储服务规划)

云上存储 : 云硬盘:基于分布式架构,可弹性扩展的虚拟块存储服务 注意事项 挂载云硬盘实例和云硬盘必须在同一区域,否则挂载失败文件存储服务:完全托管的共享文件存储 可以为多个实例实现共享访问,不同vpc中可以进行对…

网络工程师 快速入门

需要掌握 以下技术 1.网络 基础 知识 TCP/IP 、OSI 7层协议、IP地址、ARP地址解析协议、ICMP(英特网控制报文协议,ping)等 入门面试常问问题。 2.路由 路由匹配 三原则、静态路由、OSPF路由协议。 2.交换 如何放数据? VLAN TRU…

【《快速构建AI应用——AWS无服务器AI应用实战》——基于云的解决方案快速完成人工智能项目的指南】

基于云的人工智能服务可以自动完成客户服务、数据分析和财务报告等领域的各种劳动密集型任务。其秘诀在于运用预先构建的工具,例如用于图像分析的Amazon Rekognition或用于自然语言处理的AWS Comprehend。这样,就无须创建昂贵的定制软件系统。 《快速构…

Windows搭建Snort环境及使用方式

目录 0x01 前置环境0x02修改配置文件0x03 自测0x04 使用0x05 感言 0x01 前置环境 环境描述windows10snort2.9.2https://www.snort.org/downloads 先把上面环境下载好! 需要注意的是安装npcap这个软件 0x02修改配置文件 软件安装目录:C:/Snort/ 配置文…

Mac电脑怎么使用“磁盘工具”修复磁盘

我们可以使用“磁盘工具”的“急救”功能来查找和修复磁盘错误。 “磁盘工具”可以查找和修复与 Mac 磁盘的格式及目录结构有关的错误。使用 Mac 时,错误可能会导致意外行为,而重大错误甚至可能会导致 Mac 彻底无法启动。 继续之前,请确保您…

SpringBoot3---核心特性---2、Web开发I

星光下的赶路人star的个人主页 如果我们总是等待绝对的一切就绪,那我们将永远无法开始 文章目录 1、WebMvcAutoConfiguration1.1 生效条件1.2 效果1.3 WebMvcConfigure接口1.4 静态资源规则代码1.5 EnableWebMvcConfiguration源码1.6 为什么容器中放一个WebMvcConfi…

Go 微服务开发框架 DMicro 的设计思路

Go 微服务开发框架 DMicro 的设计思路 DMicro 源码地址: Gitee:dmicro: dmicro是一个高效、可扩展且简单易用的微服务框架。包含drpc,dserver等 背景 DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协议…

Ubuntu服务器ELK部署与实践

文章目录 1. Docker安装2. 拉镜象2.1 ElastciSearch2.2 Kibana2.3 logstash 3. 数据展示 1. Docker安装 看之前的文章 docker ubuntu完全卸载docker及再次安装 Ubuntu安装 Docker 此外,Docker偶尔会出现这种问题dial tcp: lookup registry-1.docker.io on 192.168.1…

在 3ds Max 中使用相机映射将静止图像转换为实时素材

推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 在 Photoshop 中准备图像 步骤 1 这是我将在教程中使用的静止图像。 这是我的静态相机纸箱的快照。 静止图像 步骤 2 打开 Photoshop。将图像导入 Photoshop。 打开 Photoshop 步骤 3 单击套索工…

Python---Numpy

文章目录 1.Numpy是什么?2.ndarray2.1 什么是ndarray?2.2 ndarray的属性2.3 ndarray的类型 3.Numpy基本操作3.1 生成0或1的数组3.2 从现有数组生成数组拓展:浅拷贝和深拷贝 3.3 生成固定范围的数组3.4 生成随机数组3.4.1 正态分布3.4.2 均匀分布 3.5 形…

【HashMap原理解析】

HashMap面试问题 集合概述单列集合双列集合HashTableProperties HashMap底层数据结构哈希表哈希冲突拉链法开放定址法 红黑树红黑树定义红黑树非红黑树 红黑树的插入链表和红黑树在HashMap中的体现 HashMap的扩容机制HashMap初始化HashMap扩容先添元素后扩容什么情况下扩容怎么…

C语言案例 不重复数字输出--01

题目:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 步骤一:定义程序目标 编写一个C程序,使用1、2、3、4四个数字组成不相同且不重复的三位数,分别显示出来…

性能测试基础知识(三)性能指标

性能测试基础知识(三)性能指标 前言一、时间特性1、响应时间2、并发数3、吞吐量(TPS) 二、资源特性1、CPU利用率2、内存利用率3、I/O利用率4、网络带宽使用率5、网络传输速率(MB/s) 三、实例场景 前言 性能…

使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——组合应用

在《使用Golang实现一套流程可配置,适用于广告、推荐系统的业务性框架——简单应用》中,我们看到了各种组合Handler的组件,如HandlerGroup和Layer。这些组件下面的子模块又是不同组件,比如LayerCenter的子组件是Layer。如果此时我…

ELFK——ELK结合filebeat日志分析系统(2)

目录 一、filebeat 二、ELFK 1.原理简介 2.在ELK基础上部署filebeat 一、filebeat Filebeat,轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并…

echarts-pie---------3D曲状环形饼图实现!!!

示例(参考此处饼图修改https://www.isqqw.com/viewer?id37497) 话不多说直接上代码 此套代码可以直接再echarts官网中的此处运行 let selectedIndex ; let hoveredIndex ; option getPie3D([{name: 数学,value: 60,itemStyle: {color: #1890FF,},},{…

RTT学习笔记12-KConfig 语法学习

KConfig 语法学习 RTT 官方教程 https://www.rt-thread.org/document/site/#/development-tools/build-config-system/Kconfig 我自己写的IIC配置 menuconfig BSP_USING_I2C # I2C 菜单bool "Enable I2C BUS" # 提示I2C 菜单default n # 默认不使能I2C 菜单…