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

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随意删除目录中文件
最终权限在计算机里的操作是:
最终权限 = 起始权限 & (~ 掩码权限)

相关文章:

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

在linux的世界中我们首先要有万物皆文件的概念,那么在系统中有那么多的文件,我们该怎么区分呢?文章目录 1. 文件分类2. 文件的权限1). 拥有者和所属组以及other2). 文件的权限3). 粘滞位4). 对于权限修改的拓展知识点a.修改权限b.修改拥有者所…...

关于Synchronized

Synchronized用于实现线程间的同步。它可以被用于方法或代码块上,确保同一时间只有一个线程可以访问被 synchronized 修饰的代码,也就是常说的锁,synchronized有三点作用 1)实现线程安全:通过使用 synchronized&#x…...

深度学习(Python)学习笔记2

第二章 感知机 2.1 感知机是什么 感知机接收多个输入信号,输出一个信号。 感知机的信号会形成流,向前方输送信息。 感知机的信号只有“流/不流”(1/0)两种取值。 本学习笔记中,0对应“不传递信号”,1对应“传递信号”。 图中、是输入信号,是输出信号,、是权重。图…...

gitlab操作

1. 配置ssh 点击访问 2. 创建新分支与切换新分支 git branch 新分支名 // 创建 git checkout 新分支名 // 切换到新分支3. 查看当前分支 git branch*所指的就是当前所在分支 4. 本地删除文件后与远程git同步 git add -A git commit -m "del" git push...

docker day04

Dockerfile: - FORM: 1.指定基础镜像,可以起别名,也可以指定多个FROM指令,用于多阶段构建; 2.加载触发器,加载ONBUILD指令; 3.不指定基础镜像,声明当前镜像不依赖任何镜像,官方…...

任意区域的色彩一致性处理方法

影像任意感兴趣区域的色彩一致性处理方法,主要是针对掩膜后的影像,类似下图,对非背景区域的像素进行处理 其中非黑色部分我们叫待匀色区域。 这种处理 对于wallis 和直方图匹配 很容易实现,但是颜色转移就相对而言 困难点。 颜…...

听GPT 讲Istio源代码--pilot

File: istio/operator/pkg/translate/translate.go 在Istio项目中,istio/operator/pkg/translate/translate.go文件的作用是处理Istio Operator的配置信息和Kubernetes的资源对象之间的翻译和转换。 首先,scope和componentToAutoScaleEnabledPath是用于记…...

pdfjs解决ie浏览器预览pdf问题

pdfjs是一个js库,可以将pdf文件用canvas重新绘制,从而无需借助pdf读取插件就可以直接预览。 目前chrome内核的浏览器已内置pdf读取插件,但ie浏览器还没有。而我们最近在做的一个项目使用对象是医院,使用的浏览器竟然还是ie。所以我…...

千里共婵娟 | 结合微信公众号用JavaScript完整开发实现换中秋头像的功能

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…...

pt26django教程

admin 后台数据库管理 django 提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用 django 会搜集所有已注册的模型类,为这些模型类提拱数据管理界面,供开发者使用 创建后台管理帐号: [rootvm mysite2]# python3 manage.…...

javabasic

计算机基础 一、学前知识 1. 计算机组成 2. 进制的概念 (1)二进制的存储 计算机不管是内存还是硬盘,都是以二进制的形式存储。如同一张巨大的表格,里面都是由0和1组成。 二进制:逢2进1 基数为2,数值部分…...

电子词典项目

目录 目录 头文件&#xff1a;dict.h: 源文件&#xff1a;dict.c: 服务器测试文件&#xff1a;serDict.c: 客户端测试文件&#xff1a;cliDict.c: 头文件&#xff1a;dict.h: #ifndef __DICT_H__ #define __DICT_H__ #include<myhead.h> #include<sqlite3.h>#de…...

SQL12 高级操作符练习(2)

描述 题目&#xff1a;现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研&#xff0c;请你取出相关数据&#xff08;使用OR实现&#xff09; 示例&#xff1a;user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.03…...

python写代码过程中的坑230915

1.解释代码IndentationError: expected an indented block 这个错误通常是由于代码缩进错误导致的。 在Python中,代码块(如循环、条件语句、函数等)通常使用缩进来表示。因此,如果你在期望缩进的位置没有正确缩进代码,就会出现"IndentationError: expected an inden…...

SpringBoot课堂笔记20230913

本篇文章为SpringBoot学习笔记&#xff0c;方便自己再复习。 Maven&#xff1a;jar包管理工具 注解&#xff1a; Controller:处理http请求&#xff0c;返回的视图 RestController: 相当于ResponseBody和Controller一起用&#xff0c;返回的是json ResponseBody:返回响应内容 …...

3D数字孪生:从3D数据采集到3D内容分析

数字孪生&#xff08;Digital Twin&#xff09;是物理对象、流程或系统的虚拟复制品&#xff0c;用于监控、分析和优化现实世界的对应物。 这些数字孪生在制造、工程和城市规划等领域变得越来越重要&#xff0c;因为它们使我们能够在现实世界中实施改变之前模拟和测试不同的场景…...

【杂记】git管理工具的相关应用

这里记录一些用git管理工具进行开发的命令&#xff0c;便于自己查看&#xff0c;我认为下面两篇博客写的很详细&#xff0c;但是为了自己方便查看&#xff0c;所以自己写了一些命令供自己进一步理解。gitee相对git来说更方便一些&#xff08;毕竟国内的不用担心墙&#xff09;&…...

看好多人都在劝退学计算机,可是张雪峰又 推荐过计算机,所以计算机到底是什么样 的?

张雪峰高考四百多分&#xff0c;但是他现在就瞧不起400多分的学生。说难听点&#xff0c;六七百分的 热门专业随便报谁不会啊&#xff1f; 计算机专业全世界都是过剩的&#xff0c;今年桂林电子科技&#xff0c;以前还是华为的校招大学&#xff0c;今年 计算机2/3待业。这个世…...

leetcode 26.删除有序数组中的重复项

给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c;你需要做…...

jitsi音视频会议集成到自己的网页中

将jitsi视频会议集成到自己的web网站&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><meta name"viewport" content&…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...