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的权限。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一百四十一、Kettle——kettle8.2在Windows本地开启carte服务以及配置子服务器

一、目的 在kettle建好共享资源库后,为了给在服务器上部署kettle的carte服务躺雷,先在Windows本地测试一下怎么玩carte服务 二、Kettle版本以及在Windows本地安装路径 kettle版本是8.2 pdi-ce-8.2.0.0-342 kettle本地安装路径是D:\j…

linuxARM裸机学习笔记(2)----汇编LED灯实验

MX6ULL 的 IO IO的复用功能 这里的只使用了低五位,用来配置io口,其中bit0~bit3(MUX_MODE)就是设置 GPIO1_IO00 的复用功能的,GPIO1_IO00 一共可以复用为 9种功能 IO,分别对应 ALT0~ALT8。每种对应了不同的功能 io的属性配置 HY…

拦截器在SpringBoot中使用,HandlerInterceptor,WebMvcConfigurer

拦截器在Controller之前执行。 用于权限校验,日志记录,性能监控 在SpringBoot中使用 创建拦截器类:首先,创建一个Java类来实现拦截器逻辑。拦截器类应该实现Spring提供的HandlerInterceptor接口。实现拦截器方法:拦…

Unity数字可视化学校_昼夜(二)

1、时间设置: 2、新建夜晚 3、新建侧置球(BOX),测试灯光强度 降低亮度 色调:冷色调 4、自发光 新建shader 灯光控制 道路线: 建筑: 夜晚加灯光: 玻璃: 加大灯光数量: 边缘…

uni-ajax网络请求库使用

uni-ajax网络请求库使用 uni-ajax是什么 uni-ajax是基于 Promise 的轻量级 uni-app 网络请求库,具有开箱即用、轻量高效、灵活开发 特点。 下面是安装和使用教程 安装该请求库到项目中 npm install uni-ajax编辑工具类request.js // ajax.js// 引入 uni-ajax 模块 import ajax…

服务端高并发分布式结构演进之路

目录 一、常见概念 1.1基本概念 二、架构演进 2.1单机架构 2.2应用数据分离架构 2.3应用服务集群架构 2.4读写分离 / 主从分离架构 2.5引入缓存 —— 冷热分离架构 2.6垂直分库 2.7业务拆分 —— 微服务 一、常见概念 1.1基本概念 应用(Application&am…

Grafana集成prometheus(1.Prometheus安装)

下载docker镜像 docker pull prom/prometheus docker pull prom/node-exporter启动 node-exporter 该程序用以采集机器内存等数据 启动脚本 docker run -d -p 9100:9100 prom/node-exporter ss -anptl | grep 9100启动截图 prometheus 启动脚本 # 3b907f5313b7 为镜像i…

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig-zag/左右双旋/3+4重构)

目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 00.BBST——平衡二叉搜索树 本文是介绍众多平衡二叉搜…

上海亚商投顾:沪指震荡微涨 金融、地产午后大幅走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数早盘震荡,午后集体拉升反弹,创业板指涨超1%。券商等大金融板块午后再度走强&#…

【LNMP】LNMP

LNMP:是目前成熟的企业网站的应用模式之一,指的是一套协同工作的系统和相关软件;能够提供静态页面服务,也可以提供动态web服务 L Linux系统,操作系统N Nginx网站服务,前端,提供前端的静态…

抽象类的顶级理解

目录 1.抽象类的介绍 2. 抽象类语法 3.模板设计模式 1.抽象类的介绍 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象&…

24. 两两交换链表中的节点

头结点dummyHead 定义结点temp用来暂存node2 让node1和node2位置互换:head(temp)->node1->node2->node3->node4 然后让temp等于交换后node1位置:head->node2->node1(temp)->node3->node4 class Solution { public:ListNode*…

学生信息管理系统springboot学校学籍专业数据java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 学生信息管理系统springboot 系统3权限:超…

数据结构--线性表2-2

目录 一、线性表例题: 二、分配动态内存: 1.动态创建一个空顺序表的算法: 2.动态顺序表的插入算法: 3.动态顺序表的删除 三、线性表的链式表示和实现 例题1:创建链表并插入26个字母 例题2:在链表中取…

MGRE综合

实验 一、实验思路 1.先按照上图配置IP地址及环回 2.写缺省使公网可通 3.让R1、R4、R5每台路由器均成为中心站点形成全连网状结构拓扑 4.让R1成为中心站点R2R3为分支站点 5.分区域宣告ospf之后更改ospf在虚拟接口Tunnel工作方式为broadcast及让R1 当选DR 二、上虚拟机操作…

【已解决】vagrant up下载box速度太慢的解决方法

一、问题背景 本菜鸟在学习雷神(尚硅谷雷丰阳)的这个教程Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目的时候,按照视频教程的步骤,正准备用Vagrant工具给VirtualBox安装并启动Centos7的Linux操作系统,当在Windows命令提示符窗体…

把网站改为HTTPS访问方法

HTTPS是使用TSL/SSL加密超文本传输协议的扩展,用于跨网络的安全传输。网站更改为HTTPS,直接在网站形象上可以得到提升,更重要的是您的网站肯定会在排名和提升方面受益。机密信息的交换需要受到保护,以阻止未经授权的访问。 加密&a…

Mock.js的基本使用方法

官网网址:Mock.js (mockjs.com) 当前端工程师需要独立于后端并行开发时,后端接口还没有完成,那么前端怎么获取数据? 这时可以考虑前端搭建web server自己模拟假数据,这里我们选第三方库mockjs用来生成随机数据&#xf…

Emacs之远程开发C++配置: emacs + tramp + clangd(一百二十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

动手学深度学习(二)线性神经网络

推荐课程:跟李沐学AI的个人空间-跟李沐学AI个人主页-哔哩哔哩视频 回归任务是指对连续变量进行预测的任务。 一、线性回归 线性回归模型是一种常用的统计学习方法,用于分析自变量与因变量之间的关系。它通过建立一个关于自变量和因变量的线性方程&…