linux相关知识以及有关指令3

在linux的世界中我们首先要有万物皆文件的概念,那么在系统中有那么多的文件,我们该怎么区分呢?

文章目录

  • 1. 文件分类
  • 2. 文件的权限
    • 1). 拥有者和所属组以及other
    • 2). 文件的权限
    • 3). 粘滞位
    • 4). 对于权限修改的拓展知识点
      • a.修改权限
      • b.修改拥有者所属组
      • c.权限掩码

1. 文件分类

在linux中文件大致分为以下几类:
-:普通文件,源代码,可执行程序,库等等。
d:目录文件
c:字符设备文件,键盘,显示器
b:块设备文件
l:链接文件
p:管道文件
上面的字母是各类文件的表示他们位于这个位置:
在这里插入图片描述
我们可以看到在linux中文件的前面有很多属性而位于最前面的十个字符中的第一个字符则表明了它是一个什么样的文件,那么就有人会问那后面剩下的字符是什么意思呢?现在我们先来介绍一下其他的知识。
linux中一般对不同类型的文件有着不同的高亮颜色

2. 文件的权限

1). 拥有者和所属组以及other

在这里插入图片描述
这里可以看到有两个字符串,而且好像是我们的账户名字。是的它就是我们账户的名字,而不同的位置有着不同的意思,第一个是代表拥有者,即创造这个文件的人,第二个是所属组,这个里面可以不止一个人,他的目的是为了让多人对这个文件进行维护。而除了拥有者和所属组外,还有一种身份是other,other是除上述两种身份外的所有人的囊括,即对某个文件一个人不属于上述两种身份的情况下那他就是other。

2). 文件的权限

现在我们再来看文件的前面那十个字符的后九个字符是什么意思。
他其实是代表了三个身份对于这个文件的所拥有的权限,而权限分为三种:

r:读权限
w:写权限
x:可执行的权限

在这里插入图片描述
我们假如修改test.c文件所属组的权限,他现在的权限是只有读和写的权限,我们让他把这两个的权限也去掉:
而修改权限需要的命令是chmod g-rw test.c
在这里插入图片描述
其中:u(user)代表拥有者,g(group)代表所属组,o(other)代表other。要修改权限,只需要身份加减权限言明对应文件即可。
再次赋予所属组原来的权限:chmod g+rw test.c
在这里插入图片描述
只有拥有者和root账户可以修改文件权限

chmod 
a:全体的增加和删除权限

在这里插入图片描述
对某个文件目录添加或删除某个身份的权限,会使隶属于这个身份对于这个文件的修改,查看,执行权限有所改变。对于一个文件来说,写权限就是修改文件的内容,读权限就是查看文件内容,执行就是执行。
而对于一个目录来说。

写权限是对目录内的文件增加或者删除
读权限是能否查看这个目录中的内容
执行权限是能否进入这个目录

所以当一个目录other权限开放时,就算目录中的文件的other权限全部关闭,当other进入这个目录时,仍旧可以任意的添加删除文件,所以一个用户删除添加一个文件,取决于他的身份和对应身份在当前文件所属目录的权限如何。

3). 粘滞位

而在多人协作在同一个目录时,则需要当前目录对特定身份的人开放全部权限,而这时候就有可能导致错误性的删除某些文件,而造成损失,所以就出现了一个新的概念叫做粘滞位。粘滞位在默认状态下对other身份的人进行限制

chmod +t 文件  (默认other,只能给目录设置,添加后只能该目录的拥有者删除文件。)

在这里插入图片描述

现在我们用root账户在home路径下创建一个多人协作所需要的目录group_work,并在目录里添加一个文件test,并开放other的所有权限。
在这里插入图片描述
这时候我们使用zsw账号就可以随意的删除这个test文件
在这里插入图片描述
我们再次创建文件在group_work目录中,在对这个目录增添粘滞位。
在这里插入图片描述
这个时候就不被允许随意的删除文件了,当设置好后只能由目录的拥有者删除文件
在这里插入图片描述

4). 对于权限修改的拓展知识点

a.修改权限

我们发现这九个字符他们的状态不是rwx就是‘-’(除开粘滞位外),所以他们完全可以用0和1来表示他们的状态,三三成组,而三个二进制位又可以用一个八进制位来表示。所以当我们修改权限时,可以这么来写

chmod 444 文件名 (表示这个文件要修改为的权限是100100100  r--r--r--)

b.修改拥有者所属组

chown root test.txt --- 修改拥有者,可以在前面加sudo强制给予
chgrp root test.txt --- 修改所属组,同上
chown root:root test.txt 修改拥有者和所属组

这里只需要修改两个身份就可以,因为不属于这两个身份的人一定是other

c.权限掩码

现在我们再创建一个目录和文件
在这里插入图片描述
linux系统新建文件默认没有执行权限,其最大权限为rw-rw-rw-(666),新建目录的最大权限为rwx-rwx-rwx(777)
当我们创建好时我们发现他的权限是这样的,与我们上述结论不符合。那为什么是这样的呢?
其实这是受系统权限掩码的影响,我们可以输入umask并回车查看当前权限掩码
权限掩码有四个数字,我们只看后三个。
在这里插入图片描述

而这个默认权限又会与权限掩码发生作用才会形成最终权限,他们作用的过程就是

最终权限 = 起始权限去掉权限掩码中出现的权限,所以我们才会看到常见好的目录他没有了写权限,是为了防止other随意删除目录中文件
最终权限在计算机里的操作是:
最终权限 = 起始权限 & (~ 掩码权限)

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

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

相关文章

【MySQL进阶】SQL性能分析

一、SQL性能分析 1.SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信 息。通过如下指令,可以查看当前数据库的 INSERT 、 UPDATE 、 DELETE 、 SELECT 的访问频次: -- session 是查看当…

Linux学习之基础工具二

经过学习我们已经大致的学会了vim的使用,可以利用vim进行代码的编写了,在学习c语言的时候我们就知道,编译完成一个代码需要进行四个步骤: 1. 预处理(进行宏替换) 2. 编译(生成汇编) 3. 汇编(生…

Java实现计算两个日期之间的工作日天数

需求: 需要在后端实现 计算当前日期与数据库内保存的日期数据之间相隔的工作日数目 实现 import java.time.DayOfWeek; import java.time.LocalDateTime;public class WorkdaysCalculator {public static void main(String[] args) {String givenDateTimeStr &q…

HTTPS Tomcat Servlet 博客系统 软件测试的概念 Linux

第 1 题(多选题) 题目名称: 以下关于http和https说法正确的是 题目内容: A .http是超文本传输协议 B .https是超文本传输安全协议 C .http是明文传输 D .https是加密传输 第 2 题(单选题) 题目名称…

【计算机视觉】Image Feature Extractors方法介绍合集(一)

文章目录 一、Convolution二、1x1 Convolution三、Depthwise Convolution四、Pointwise Convolution五、Depthwise Separable Convolution六、Grouped Convolution七、Dilated Convolution八、3D Convolution九、Non-Local Operation十、Deformable Convolution十一、Switchabl…

UI自动化测试神器Playwright(Java版)(保存登录cookie,解决免登录)

🎭 Playwright在称为浏览器上下文的隔离环境中执行测试。该隔离模型提高了可重复性并防止相关联的测试脚本执行失败。测试可以加载现有的已验证状态,比如获取已登录的状态(Cookie),在后续脚本中复用。这消除了在每个测…

【论文笔记】Perception, Planning, Control, and Coordination for Autonomous Vehicles

单纯作为阅读笔记,文章内容可能有些混乱。 文章目录 1. Introduction2. Perception3. Planning3.1. Autonomous Vehicle Planning Systems3.2. Mission Planning3.3. Behavioral Planning3.4. Motion Planning3.4.1. Combinatorial Planning3.4.2. Sampling-Based P…

web安全漏洞-SQL注入攻击实验

实验目的 学习sql显注的漏洞判断原理掌握sqlmap工具的使用分析SQL注入漏洞的成因 实验工具 sqlmap是用python写的开源的测试框架,支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,I…

解决mybatis-plus不能俩表联查分页之手动写分页

public class MyPageHelper {// 调用pageInfo插件内的方法 开启分页 需要传入一个起始页的值和每页显示的条数public static void startPage(PageRequest pageRequest) {PageHelper.startPage(pageRequest.getPageNum(),pageRequest.getPageSize());}// 封装结果集public stati…

【CMU15-445 Part-11】Join Algorithms

Part11-Join Algorithms Why Do We Need to Join? Join其实是关系数据库和范式化表时候所产生的副产物。 也就是说我们范式化表是为了减少冗余信息,而我们使用join就是为了去重建reconstruct 这些原本的tuple Join Algorithms 主要关注两表的inner equijoin a…

01_网络编程_传统IO

网络编程 1.什么是网络编程 在网络通信协议下,不同计算机上运行的程序,进行的数据传输。 如果想把一个计算的结果,或者是电脑上的文件通过网络传递给你的朋友,就需要用到网络编程。 在实际生活中,网络通信无处不在…

Windows 10 Enterprise LTSC 2021 (x86) - DVD (Chinese-Simplified)文件分享

Windows 10 Enterprise LTSC 2021 (x64) - DVD (Chinese-Simplified) SW_DVD9_WIN_ENT_LTSC_2021_64BIT_ChnSimp_MLF_X22-84402.ISO 镜像文件: 链接:https://pan.quark.cn/s/2f8f61ec4a98 Windows 10 Enterprise LTSC 2021 (x86) - DVD (Chinese-Simpli…

python selenium 爬虫教程

Python和Selenium是很强大的爬虫工具,可以用于自动化地模拟浏览器行为,从网页中提取数据。下面是一个简单的使用Python和Selenium进行爬虫的案例。 入门: 1. 安装和配置: 首先,你需要安装Python和Selenium。可以使用…

Postman的高级用法一:重新认识postman核心模块

本请求示例来自于免费天气API: 实况天气接口API开发指南 未来一天天气预报api - 天气API 关于Postman的核心模块 全局变量请求接口请求体预处理脚本 类似beforeTest,在发起请求前的预执行逻辑,通常是生成一些动态变量值 测试用例模块 测试者…

开源社区赋能,Walrus 用户体验再升级

基于平台工程理念的应用管理平台 Walrus 已于上月正式开源,目前在 GitHub 已收获 177 颗星🌟 Walrus 希望打造简洁清爽的应用部署与管理体验,帮助研发与运维团队减少“内耗”工作,提升开发体验。 我们十分重视 Walrus 用户的…

Ubuntu安装深度学习环境相关(yolov8-python部署)

Ubuntu安装深度学习环境相关(yolov8-python部署) 本文将从如下几个方面总结相关的工作过程: Ubuntu系统安装(联想小新pro16) 2.显卡驱动安装3.测试深度学习模型 1. Ubunut 系统安装 之前在台式机上安装过Ubuntu,以为再在笔记本上安装会是小菜一碟&…

查询IP地址可得到哪些信息

通过IP地址定位,可以获取一些基本的信息,包括以下内容: 1. 地理位置:你可以确定IP地址所在的地理位置,包括国家、州或省、城市和地理坐标。这通常是通过将IP地址与地理位置数据库进行匹配来实现的。 2. ISP&#xff…

JDK13特性

文章目录 JAVA13概述语法层面特性switch表达式(预览)文本块(预览) API层次特性重新实现旧版套接字API 其他变化ZGC取消未使用的内存增加废弃和移除增加项移除项废弃项 JAVA13概述 2019年9月17日,国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK…

【资源监视器】设备占用,强制弹出移动硬盘

设备占用,强制弹出移动硬盘 任务管理器中找到资源监视器 资源监视器:找到CPU 输入磁盘:如H: , 点击旁边的刷新 结束句柄 右键

简单工厂模式 和 工厂方法 和 抽象工厂的区别

简单工厂模式、工厂方法模式和抽象工厂模式是三种不同的创建型设计模式,它们在对象的创建和封装方面有不同的用途和实现方式。以下是它们之间的主要区别: 1. **简单工厂模式(Simple Factory Pattern)**: - **目的**&a…