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

linux权限续

文章目录

  • linux权限续
    • 进入目录的权限
    • 有关默认权限
    • 删除文件权限--粘滞位
    • 基础开发工具
      • 软件包管理器
    • 结语

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路
在这里插入图片描述
今天我们来学习Linux的基础指令,以及细化每一条指令,我们会从基本用法和理论的角度出发认识这些指令
作者:٩( ‘ω’ )و260
我的专栏:Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

linux权限续

在前面我们讲解了普通文件的权限,接下来我们来理解目录与权限的联系,我们需要使用普通用户来验证,因为超级用户不受权限限制,这里主要有三个问题:
1:我们需要什么权限才能够进入一个目录?
2:为什么创建普通文件,目录的默认权限是固定的?
3:other没有任何权限,能否删除文件?

进入目录的权限

我们来看进入目录的权限,我们一个一个来验证:
先来验证-r:
在这里插入图片描述
注意:为什么这里我减去的是拥有者的-r,因为角色匹配只会匹配一次,且是从左到右匹配,这里用户为zxh,匹配到的是拥有者

那么目录文件中,-r的作用是什么呢?
在这里插入图片描述

-r:决定用户能否查看该目录中的文件属性

再来验证-w:
在这里插入图片描述
我们发现还是能够进入目录,那么-w决定的是什么呢?
在这里插入图片描述

-w:决定了特定用户是否有权限在该目录下进行创建目录文件,删除,重命名文件

所以:

进入目录的权限就是-x

来看代码验证:
在这里插入图片描述
其实这里可以这样理解:
前面我们提到过linux下一切皆文件,所以目录也是一个文件,是文件就必须包含文件内容和文件属性,目录的文件属性直接ll就可以看到,那么,目录的文件内容是什么呢?

我们可以片面的理解为目录文件内容就是目录下的文件的属性!!这里我们学到文件再来完善

有关默认权限

刚才我们创建了一个目录文件,此时就有一个默认的权限,普通文件也同理:
在这里插入图片描述
这两者的区别是什么呢?
目录文件比普通文件默认权限就多一个x:因为目录文件可以进入,普通文件大多数都是文本文件,库文件,可执行文件~

如果我们将这个转换为八进制,目录文件为 775,普通文件为664,默认权限涉及起始权限:

目录的起始权限为777,普通文件的起始权限为666

接下来还涉及权限掩码的问题:

查看权限掩码:umask
修改权限掩码:umask + 三位八进制数字

在这里插入图片描述
注意:不用担心修改之后不知道其实的权限掩码是多少,关闭xshell之后重新登陆,就会被重置为最初的权限掩码

我们直接来说明结论:

凡是出现在权限掩码中的权限,最终都应该从权限中去掉
注:去掉不是减,计算规则是:默认权限=起始权限 & (~权限掩码)

所以造成的效果就是字符掩码中的权限在其实权限中就去掉了!!

来看示例:
此时我们字符掩码是002,即other权限中的w权限肯定是在起始权限中没有的。
在这里插入图片描述
此时我们字符掩码是777,即三种角色所有权限在起始权限中都没有:
在这里插入图片描述

删除文件权限–粘滞位

有一种场景,比如我们需要两个普通用户进行共享文件,那么,我们共享文件的位置应该是在哪里呢?
在这里插入图片描述
先来看家目录,家目录默认只对自己开放,所属组和oher都是没有任何权限的,所以共享文件肯定不能够放在家目录的。

那么,我们最好就放在root创建的目录中,为什么呢?因为用户可以进行sudo提权去访问有root用户创建的共享文件!!

语法:chmod +t 目标目录

在这里插入图片描述
如果此时还有一个用户要来访问这个文件,此时肯定第三个用户也能够访问到,但是,就有一个问题:
第三个用户访问的时候,我能够通过sudo提权将这个共享文件给删除掉,因为该文件root用户已经对所有用户other用户开放w权限,允许对其中的文件进行创建,删除,重命名改目录文件,这就导致了我的共享文件能够被任何人删除!!这显然不合理,为什么我的文件能够被任何人删除呢?
为了处理这种情况,引入了粘滞位~

在这里插入图片描述
这里zxh.txt是由zxh用户创建的,但是却可以被其他用户给删掉,那么不是别人想删这个文件就删这个文件。当我们给该目录添加上粘滞位之后,再来看结果:
在这里插入图片描述
因为普通用户相当于根目录都是other,所以肯定是在other加上t权限,此时再去删除该文件是就会报错~~
在这里插入图片描述
此时由于粘滞位,只能够删除自己创建的文件(root用户除外)
在这里插入图片描述
我们先来说明结论:

粘滞位:
1:给other用户设置的权限管理级别
2:创建的文件只能够有拥有者和超级用户删

基础开发工具

软件包管理器

什么是软件包?
在linux中,下载软件主要分为三种手段:
1:源代码下载(麻烦),因为还需要自己编译
2:rpm包安装(麻烦)。
3:软件包管理器(推荐):即将已经完成的二进制程序已经编译好放在了对应的服务器上。用户需要下载直接可以到对应的服务器上下载

apt/yum都是软件包管理器,能够自动解决依赖,下载,安装软件包问题

依赖是什么?
以前我们写的程序都是依赖库中的代码,比如写一个打印hello world程序,需要借助库中的文件,即头文件。
同理,linux中各个二进制程序指令也会对库有依赖,如动态库。使用软件包安装能够下载这个二进制程序指令,同时也能够进行将对应的动态库等依赖性文件一并下载。

评估操作系统的好坏:linux生态(涉及文档,论坛,更新,软件自身,客户群体),即操作系统做的目的就是为了有更多人能够使用。

我们来查看涉及软件包安装的具体指令操作:

安装:apt/yum install -y 二进制程序名称
删除:apt/yum remove -y 二进制程序名称

在下载程序的时候我们需要保证网络通畅,检查网络是否通畅的指令:

ping + 目标地址(域名/主机名)

来看测试代码:
在这里插入图片描述
链接正常的话指令会运行下方并给出结果~~

下载软件包之后,可以去找到对应的软件包:

指令:
centos:yum lis | grep 二进制程序名称
ubuntu:apt search 二进制指令名称

list指罗列目标包服务器,其中包含打包好的二进制程序(即命令)。
这里我们不再举例~~

结语

感谢大家的认真阅读,不足之处欢迎大家留言指出,感谢大家支持!!
在这里插入图片描述

http://www.lryc.cn/news/598466.html

相关文章:

  • 【从0开始学习Java | 第3篇】阶段综合练习 - 五子棋制作
  • 奇异值分解(Singular Value Decomposition, SVD)
  • 光通信从入门到精通:PDH→DWDM→OTN 的超详细演进笔记
  • day62-可观测性建设-全链路监控zabbix+grafana
  • 深度分析Java内存结构
  • 排序查找算法,Map集合,集合的嵌套,Collections工具类
  • SSM之表现层数据封装-统一响应格式全局异常处理
  • Spring AI 系列之二十四 - ModerationModel
  • 从0到1学习c++ 命名空间
  • 【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令
  • 【YOLOv8改进 - 特征融合】FCM:特征互补映射模块 ,通过融合丰富语义信息与精确空间位置信息,增强深度网络中小目标特征匹配能力
  • Springboot儿童医院问诊导诊系统aqy75(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 免费生成文献综述的网站推荐,助力高效学术写作
  • 408——数据结构(第二章 线性表)
  • 线段树学习笔记 - 练习题(2)
  • Flowable + Spring Boot 自定义审批流实战教程
  • 「iOS」黑魔法——方法交换
  • 词嵌入维度与多头注意力关系解析
  • 51c视觉~3D~合集4
  • 【C语言进阶】柔性数组
  • 11款Scrum看板软件评测:功能、价格、优缺点
  • C++标准库算法实战指南
  • Java基础day16-Vector类-Stack类-Collection子接口Set接口
  • 基础NLP | 02 深度学习基本原理
  • EasyExcel 模板导出数据 + 自定义策略(合并单元格)
  • 亚马逊云科技 EC2 部署 Dify,集成 Amazon Bedrock 构建生成式 AI 应用
  • 货车手机远程启动的扩展功能有哪些
  • QML 模型
  • java如何声明函数
  • Vulnhub Matrix-Breakout-2-Morpheus靶机攻略