Linux篇——权限
在生活中我们知道,一个人能够从事的工作或任务,不是取决于你是谁,而是取决于你的身份是什么,就比如同一个人,如果他是校长,那就可以说放假就放假,如果是学生,就没有这个决定的权力。在Linux中,我们同样也要权限的概念,接下来我们来看看Linux中的权限。
一、Linux下的用户权限与用户转换
Linux下有两种用户:超级用户(root)和普通用户,root用户可以在Linux系统下做任何事,无限制,像我们之前的文章中所演示的操作都是在超级用户下进行的。而普通用户就相对来说有些限制。那如何进行普通用户与超级用户以及不同普通用户之间的转换呢?我们有以下命令:su 用户名(如果想切换到超级用户用户名就是root),然后会让你输入该用户下的密码,输入正确的密码后我们就能切换成功了。但之前我们说过,超级用户做事情无限制,所以当我们是超级用户时想切换到其他普通用户时候,不用输密码,直接切换成功(体现了超级用户的高权限性)。
二、普通用户的命令提权
假设我们先以普通用户的身份登录账号并创建一个目录,展开具体信息发现这个目录确实是由我这个用户创建的,但我现在要是想以root的身份创建一个目录的话,只能先切换到root用户然后再创建,但有点太麻烦了,这里我们有命令的提权,也就是说,我可以在我的普通用户下以root的身份去执行某一条命令。语法为sudo+命令,然后他会让你输入你普通用户的密码,输入后即可执行。tt
这么看来,root这个身份看起来就很鸡肋了,因为只要会用提权,任何普通用户都可以随意以root的身份执行命令,然而,当你刚创建一个普通用户想提权时,发现报错了,是因为在Linux中有一个类似于白名单的目录,只有这里的用户才能提权,你可以向root申请,让他把你加入进去,就可以提权了,这么一看root确实是很权威的。
三、有关于文件的权限
对于一些文件,不同的人对其有不同的权限,比如我们看电影有时需要会员,只有你账号是会员才可以有权观看,在Linux中,对于文件,分三种人,拥有者,所属组,other 。现在我有以下几个目录或文件
展开详细信息后,第一列的root所在的位置显示的是拥有者,第二个列的位置是所属组。other就是既不是拥有者也不是所属组。other因为可以是任何人所以不需要记住,只需要记住拥有者和所属组即可。那为啥还有一个所属组的概念呢?这是为了更细精度的权限管理,比如我的所拥有的文件想对某一个人开放但又不想让other看见,就可以把他放进所属组然后把组的权限放开。
四、文件的属性
有时候并不是说开放了某一权限我们就能干所有事情,比如,我无法在视频网站上打游戏。所以权限不只是取决于你的身份,还取决于事物的属性,也就是权限=人+事物属性。文件的属性我们可以归分为读(r)写(w)执行(x)(还要其他,这三个常见),也就是说,如果这个文件没有读属性,不管你是什么身份都无法实现r的功能。我们观察一下文件的信息。
其中后面的信息我们之前都有提及,来看一下最前面的字符串,我们发现每一个字符串都有十个字符,我们竖着看,第一列的第一个字符表示的是文件的类型,剩下的就是权限属性。剩下的九个字符,每三个为一组,第一组对应着拥有者对这个文件拥有的权限,第二组是所属组,第三组是other。你能对文件进行什么操作 取决于你的身份是否对应了这个权限。如果我们想实现改角色之外的权限,一是改角色,二是修改文件权限的属性。关于后者我们有方法。
首先,如果我们想修改某个文件,那么我们的身份肯定是这个文件的拥有者,语法为 chmod u+r/w/x 文件名称 代表我对该文件的拥有者身份增加了某种权限。(u代表user)去掉权限+编程-就行了,所属组是g,other是o。如果想统一加减权限可以用a+-rwx。
但是,一个程序想执行,第一,他需要有可执行的权限,第二,他本身也是一个可执行程序。二者缺一不可,并不是说给一个文件赋予可执行权限就能执行,因此图中绿色的file1不可执行。此外我们发现一个现象:如果我们把拥有者的权限全撤去,给所属组r和w的权限,但当我们进行写的时候发现无权限(此时的用户和拥有者和所属组是一样的),是因为我们在进行访问时,会对我们进行身份识别然后对应相应的权限,但这个过程只有一次,顺序通常是:拥有者——所属组——other,也就是说刚才那个情况,我被识别为拥有者了也就没有所属组的权限了即使是相同的名字也不会再识别,只有当你不是拥有者的时候才会向下识别。
但对于root用户来说,你所做的操作可以无视权限,也就是说即使文件的什么权限也没有,如果我们是超级用户,仍然可以实现rwx功能。
除了我们可以改变权限外,身份的所属我们也能改变,也就是改变拥有者和所属组的名字(只有当前登录用户是root时才可以修改,或者我们用命令提权sudo)语法为:chown 要修改成的用户名 文件名(修改拥有者),修改所属组就是chgrp。
五、目录的权限
目录的相关权限与文件的大致相同,都有读、写、可执行的权限,但其相同的权限有不同的作用。
对于目录而言,r权限限制着我们能否看到目录内的文件和其他目录,但不妨碍我们正常进入目录中,如果r关闭以后,我们还是能进入目录,只不过无法使用ls指令展开信息了。w权限也不妨碍我们进入目录,只是限制我们能否在目录内新建或删除文件或目录以及更改文件名(这里要与文件的权限区分开,不要认为这个目录没有w权限,目录里的文件就不可以写入东西了,能否写东西取决于该文件的权限而与目录权限没关系),x权限就直接限制我们能否进入当前目录了。
但现在我们想想,我们每当创建一个文件和目录时,发现其默认的权限并不都是开放的,而且文件和目录的默认权限也不一样,这里我们介绍一个新的修改权限方式,我们发现:三个身份的权限都是按照rwx排序的,如果我们令有权限为1,无权限为0,那么每一个身份的权限范围都是000-111(这里为8进制就是0-7),所以我们就可以一次性修改三个身份的权限:chmod abc 文件名(abc为0-7的数字每个位置分别代表不同身份)
我们初始的权限是文件666,目录777,但我们发现创建时的权限并不是这样,是因为权限掩码的存在,查看权限掩码的指令是umask(此时这里显示的是8进制)(也可以修改),
那么最终权限就是初始权限&(~权限掩码)(按位取反和按位与),这里需要把所有八进制数全改成二进制再进行运算。
六、粘滞位
我们发现,当我们以普通用户新建一个目录时,在目录里我们以root的身份新建一个文件,此时对于普通用户,我们只有r的权限不能写,但是我们可以删除,这里不要理解成因为你是root的文件我就不能删你,是因为这是你在我的目录里创建文件,我是拥有者,有最大的权力。
而且在实际中,我们每个人的账号都不想公开,也不想随意被别人篡改数据,因此我们每个人的账号目录都是只有拥有者有rwx权限,其他两个身份的权限全部关闭。
为了引进标题,我们假设一种情况,假设现在有我和另一位普通用户,我们想创建一个共享的目录或文件,可以实现数据共享,因为账号目录的私密性,所以就不能在我们两个的目录里创建,只能在根目录下,但是,如果现在有一个other,他也在根目录下,他发现我们两个在共享该文件但他不被共享,他确实没有权利写入,但他可以删除,这样我们的努力就都白费了,为了避免这种情况,我们有粘滞位。
粘滞位也算是一个权限位,语法为chmod o+t 文件名 (需要以root身份执行或提权)此时other的权限又rwx变成了rwt,此时这个文件就无法删除了(除非文件或目录拥有者是自己或者是root)。
相关文章:
Linux篇——权限
在生活中我们知道,一个人能够从事的工作或任务,不是取决于你是谁,而是取决于你的身份是什么,就比如同一个人,如果他是校长,那就可以说放假就放假,如果是学生,就没有这个决定的权力。…...
Python 梯度下降法(六):Nadam Optimize
文章目录 Python 梯度下降法(六):Nadam Optimize一、数学原理1.1 介绍1.2 符号定义1.3 实现流程 二、代码实现2.1 函数代码2.2 总代码 三、优缺点3.1 优点3.2 缺点 四、相关链接 Python 梯度下降法(六):Nad…...
大模型培训讲师老师叶梓分享:DeepSeek多模态大模型janus初探
以下视频内容为叶梓分享DeepSeek多模态大模型janus的部署,并验证其实际效果,包括图生文和文生图两部分。 叶梓老师人工智能培训分享DeepSeek多模态大模型janus初探 DeepSeek 的多模态大模型 Janus 是一款强大的 AI 模型,专注于图像和文本的多…...
2025最新源支付V7全套开源版+Mac云端+五合一云端
2025最新源支付V7全套开源版Mac云端五合一云端 官方1999元, 最新非网上那种功能不全带BUG开源版,可以自己增加授权或二开 拥有卓越的性能和丰富的功能。它采用全新轻量化的界面UI,让您能更方便快捷地解决知识付费和运营赞助的难题 它基于…...
Linux系统上安装与配置 MySQL( CentOS 7 )
目录 1. 下载并安装 MySQL 官方 Yum Repository 2. 启动 MySQL 并查看运行状态 3. 找到 root 用户的初始密码 4. 修改 root 用户密码 5. 设置允许远程登录 6. 在云服务器配置 MySQL 端口 7. 关闭防火墙 8. 解决密码错误的问题 前言 在 Linux 服务器上安装并配置 MySQL …...
计算机网络——流量控制
流量控制的基本方法是确保发送方不会以超过接收方处理能力的速度发送数据包。 通常的做法是接收方会向发送方提供某种反馈,如: (1)停止&等待 在任何时候只有一个数据包在传输,发送方发送一个数据包,…...
[Java基础]开发工具Idea
安装工具 IDE: 称为集成开发环境, 把代码编写,编译,执行等功能综合在一起的工具 卸载 控制面板->卸载程序->卸载->勾选清空配置->确认卸载 下载/安装 官网下载: IntelliJ IDEA – the Leading Java and Kotlin IDE 默认安装: 旗舰版安装无需任何勾选, 傻瓜安装…...
Java线程池
专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 理解线程池运行原理 线程的各种属性参数关闭问题异常处理拒绝策略常见的线程池 可以分析下自身工作中用的各种线程池和参数设定 工作中用到的有 普通的 Th…...
2025年01月27日Github流行趋势
项目名称:onlook项目地址url:https://github.com/onlook-dev/onlook项目语言:TypeScript历史star数:5340今日star数:211项目维护者:Kitenite, drfarrell, iNerdStack, abhiroopc84, apps/dependabot项目简介…...
C# 数组和列表的基本知识及 LINQ 查询
数组和列表的基本知识及 LINQ 查询 一、基本知识二、引用命名空间声明三、数组3.1、一维数组3.2、二维数组3.3、不规则数组 Jagged Array 四、列表 List4.1、一维列表4.2、二维列表 五、数组和列表使用 LINQ的操作和运算5.1、一维 LIST 删除所有含 double.NaN 的行5.2、一维 LI…...
Deepseek本地部署(ollama+open-webui)
ollama 首先是安装ollama,这个非常简单 https://ollama.com/ 下载安装即可 open-webui 这个是为了提供一个ui,毕竟我们也不想在cmd和模型交互,很不方便。 第一,需要安装python3.11,必须是3.11(其他版…...
(七)Spring Cloud Alibaba 2023.x:RocketMQ 消息队列配置与实现
目录 前言 准备 安装RocketMq服务 下载rocketmq服务 下载rocketmq 控制台 项目集成 引入依赖 生产者服务配置 消费者服务配置 发送队列消息 前言 在微服务架构中,异步消息通信是实现系统解耦、提高性能和增强系统可靠性的重要手段。在 Spring Cloud Alib…...
2848、与车相交的点
2848、[简单] 与车相交的点 1、题目描述 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] [starti, endi] ,其中 starti 是第 i 辆车的起点,endi 是第 i 辆车的终点。 返回数轴上被车 任意…...
51单片机开发:温度传感器
温度传感器DS18B20: 初始化时序图如下图所示: u8 ds18b20_init(void){ds18b20_reset();return ds18b20_check(); }void ds18b20_reset(void){DS18B20_PORT 0;delay_10us(75);DS18B20_PORT 1;delay_10us(2); }u8 ds18b20_check(void){u8 time_temp0;wh…...
三甲医院大型生信服务器多配置方案剖析与应用(2024版)
一、引言 1.1 研究背景与意义 在当今数智化时代,生物信息学作为一门融合生物学、计算机科学和信息技术的交叉学科,在三甲医院的科研和临床应用中占据着举足轻重的地位。随着高通量测序技术、医学影像技术等的飞速发展,生物医学数据呈爆发式…...
【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类
一、贝叶斯原理 贝叶斯算法是基于贝叶斯公式的,其公式为: 其中叫做先验概率,叫做条件概率,叫做观察概率,叫做后验概率,也是我们求解的结果,通过比较后验概率的大小,将后验概率最大的…...
ASP.NET Core 启动并提供静态文件
ASP.NET Core 启动并提供静态文件 即是单个可执行文件,它既运行 API 项目,也托管 前端项目(通常是前端的发布文件)。 这种方式一般是通过将 前端项目 的发布文件(例如 HTML、CSS、JavaScript)放入 Web AP…...
MySQL 导入数据
MySQL 导入数据 引言 MySQL 是一款广泛使用的开源关系型数据库管理系统,它以其稳定性和高效性被广泛应用于各种规模的应用程序中。在数据库管理过程中,数据的导入是至关重要的一个环节。本文将详细介绍如何在 MySQL 中导入数据,包括导入数据的准备、操作步骤以及注意事项。…...
MINIRAG: TOWARDS EXTREMELY SIMPLE RETRIEVAL-AUGMENTED GENERATION论文翻译
感谢阅读 注意不含评估以后的翻译原论文地址标题以及摘要介绍部分MiniRAG 框架2.1 HETEROGENEOUS GRAPH INDEXING WITH SMALL LANGUAGE MODELS2.2 LIGHTWEIGHT GRAPH-BASED KNOWLEDGE RETRIEVAL2.2.1 QUERY SEMANTIC MAPPING2.2.2 TOPOLOGY-ENHANCED GRAPH RETRIEVAL 注意不含评…...
将 OneLake 数据索引到 Elasticsearch - 第二部分
作者:来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分,第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中,我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…...
数据密码解锁之DeepSeek 和其他 AI 大模型对比的神秘面纱
本篇将揭露DeepSeek 和其他 AI 大模型差异所在。 目录 编辑 一本篇背景: 二性能对比: 2.1训练效率: 2.2推理速度: 三语言理解与生成能力对比: 3.1语言理解: 3.2语言生成: 四本篇小结…...
安心即美的生活方式
如果你的心是安定的,那么,外界也就安静了。就像陶渊明说的:心远地自偏。不是走到偏远无人的边荒才能得到片刻清净,不需要使用洪荒之力去挣脱生活的枷锁,这是陶渊明式的中国知识分子的雅量。如果你自己是好的男人或女人…...
基于深度学习的输电线路缺陷检测算法研究(论文+源码)
输电线路关键部件的缺陷检测对于电网安全运行至关重要,传统方法存在效率低、准确性不高等问题。本研究探讨了利用深度学习技术进行输电线路关键组件的缺陷检测,目的是提升检测的效率与准确度。选用了YOLOv8模型作为基础,并通过加入CA注意力机…...
手写防抖函数、手写节流函数
文章目录 1 手写防抖函数2 手写节流函数 1 手写防抖函数 函数防抖是指在事件被触发n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。这可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。 function debou…...
UE 导入sbsar插件
Substance 3D 插件支持直接在 Unreal Engine 5 和 Unreal Engine 4 中使用 Substance 材质。无论您是在处理游戏、可视化,还是在移动设备、桌面或 XR 上进行部署,Substance 都能提供独特的体验,并优化功能以提高生产力。 Substance 资源平台…...
pytorch实现简单的情感分析算法
人工智能例子汇总:AI常见的算法和例子-CSDN博客 在PyTorch中实现中文情感分析算法通常涉及以下几个步骤:数据预处理、模型定义、训练和评估。下面是一个简单的实现示例,使用LSTM模型进行中文情感分析。 1. 数据预处理 首先,我…...
Baklib揭示内容中台实施最佳实践的策略与实战经验
内容概要 在当前数字化转型的浪潮中,内容中台的概念日益受到关注。它不再仅仅是一个内容管理系统,而是企业提升运营效率与灵活应对市场变化的重要支撑平台。内容中台的实施离不开最佳实践的指导,这些实践为企业在建设高效内容中台时提供了宝…...
11.[前端开发]Day11-HTML+CSS阶段练习(仿小米和考拉页面)
一、小米穿戴设备(浮动) 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vie…...
设计模式学习(二)
结构型 适配器模式 定义 它允许将一个类的接口转换成客户端期望的另一个接口。适配器模式通常用于使不兼容的接口能够一起工作。 适配器模式的角色 目标接口(Target):客户端期望的接口。适配者(Adaptee)ÿ…...
【Docker】快速部署 Nacos 注册中心
【Docker】快速部署 Nacos 注册中心 引言 Nacos 注册中心是一个用于服务发现和配置管理的开源项目。提供了动态服务发现、服务健康检查、动态配置管理和服务管理等功能,帮助开发者更轻松地构建微服务架构。 仓库地址 https://github.com/alibaba/nacos 步骤 拉取…...
大白话讲清楚embedding原理
Embedding(嵌入)是一种将高维数据(如单词、句子、图像等)映射到低维连续向量的技术,其核心目的是通过向量表示捕捉数据之间的语义或特征关系。以下从原理、方法和应用三个方面详细解释Embedding的工作原理。 一、Embe…...
pandas中的apply方法使用
apply 用于对 DataFrame 或 Series 中的数据进行逐行或逐列的操作。它可以接受一个函数(通常是 lambda 函数或自定义函数),并将该函数应用到每一行或每一列上。apply语法: DataFrame.apply(func, axis0, rawFalse, result_typeNo…...
简单易懂的倒排索引详解
文章目录 简单易懂的倒排索引详解一、引言 简单易懂的倒排索引详解二、倒排索引的基本结构三、倒排索引的构建过程四、使用示例1、Mapper函数2、Reducer函数 五、总结 简单易懂的倒排索引详解 一、引言 倒排索引是一种广泛应用于搜索引擎和大数据处理中的数据结构,…...
Nginx知识
nginx 精简的配置文件 worker_processes 1; # 可以理解为一个内核一个worker # 开多了可能性能不好events {worker_connections 1024; } # 一个 worker 可以创建的连接数 # 1024 代表默认一般不用改http {include mime.types;# 代表引入的配置文件# mime.types 在 ngi…...
CNN的各种知识点(三):有关于VGG16 的结构展开的问题(1)
有关于VGG16 的结构展开的问题(1) 1. VGG16 的原生结构2. model.avgpool 的作用原生 VGG16 中没有 avgpool 层?代码中的 model.avgpool 是什么? 3. model.classifier 的作用原生 VGG16 的 classifier用户代码中的 classifier 4. 为…...
vue3中el-input无法获得焦点的问题
文章目录 现象两次nextTick()加setTimeout()解决结论 现象 el-input被外层div包裹了,设置autofocus不起作用: <el-dialog v-model"visible" :title"title" :append-to-bodytrue width"50%"><el-form v-model&q…...
sqli-labs靶场通关
sqli-las通关 mysql数据库5.0以上版本有一个自带的数据库叫做information_schema,该数据库下面有两个表一个是tables和columns。tables这个表的table_name字段下面是所有数据库存在的表名。table_schema字段下是所有表名对应的数据库名。columns这个表的colum_name字段下是所有…...
深度学习深度解析:从基础到前沿
引言 深度学习作为人工智能的一个重要分支,通过模拟人脑的神经网络结构来进行数据分析和模式识别。它在图像识别、自然语言处理、语音识别等领域取得了显著成果。本文将深入探讨深度学习的基础知识、主要模型架构以及当前的研究热点和发展趋势。 基础概念与数学原理…...
sobel边缘检测算法
人工智能例子汇总:AI常见的算法和例子-CSDN博客 Sobel边缘检测算法是一种用于图像处理中的边缘检测方法,它能够突出图像中灰度变化剧烈的地方,也就是边缘。该算法通过计算图像在水平方向和垂直方向上的梯度来检测边缘,梯度值越大…...
LeetCode 349: 两个数组的交集
LeetCode 349: 两个数组的交集 - C语言 问题描述 给定两个数组 ransomNote 和 magazine,你需要判断 ransomNote 是否可以由 magazine 里的字符构成。每个字符可以使用一次。 解题思路 通过统计 magazine 中每个字符的频次,并与 ransomNote 中字符的需…...
MATLAB的数据类型和各类数据类型转化示例
一、MATLAB的数据类型 在MATLAB中 ,数据类型是非常重要的概念,因为它们决定了如何存储和操作数据。MATLAB支持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言,这意味着变量的数…...
c++ list的front和pop_front的概念和使用案例—第2版
在 C 标准库中,std::list 的 front() 和 pop_front() 是与链表头部元素密切相关的两个成员函数。以下是它们的核心概念和具体使用案例: 1. front() 方法 概念: 功能:返回链表中第一个元素的引用(直接访问头部元素&am…...
如何使用SliverList组件
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介…...
DIFY源码解析
偶然发现Github上某位大佬开源的DIFY源码注释和解析,目前还处于陆续不断更新地更新过程中,为大佬的专业和开源贡献精神点赞。先收藏链接,后续慢慢学习。 相关链接如下: DIFY源码解析...
搜索引擎友好:设计快速收录的网站架构
本文来自:百万收录网 原文链接:https://www.baiwanshoulu.com/14.html 为了设计一个搜索引擎友好的网站架构,以实现快速收录,可以从以下几个方面入手: 一、清晰的目录结构与层级 合理划分内容:目录结构应…...
2007-2019年各省科学技术支出数据
2007-2019年各省科学技术支出数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、科学技术支出 4、范围:31省 5、指标解释:科学技术支出是指为促进科学研究、技术开发…...
【数据分析】案例03:当当网近30日热销图书的数据采集与可视化分析(scrapy+openpyxl+matplotlib)
当当网近30日热销图书的数据采集与可视化分析(scrapy+openpyxl+matplotlib) 当当网近30日热销书籍官网写在前面 实验目的:实现当当网近30日热销图书的数据采集与可视化分析。 电脑系统:Windows 使用软件:Visual Studio Code Python版本:python 3.12.4 技术需求:scrapy、…...
DRM系列二:DRM总体介绍
一、简介 DRM,全称Direct Rending Manger。是目前Linux主流的图形显示框架。相比较传统的Framebuffer(FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等)&…...
步进电机的型号和分类
步进电机的型号和分类通常根据其尺寸、结构、相数、步距角等参数来区分。以下是一些常见的步进电机型号、分类方法以及如何识别它们的指南: 一、常见步进电机型号 步进电机的型号通常由厂家命名,但也有一些通用的命名规则。以下是一些常见的型号系列&am…...
【力扣】15.三数之和
AC截图 题目 思路 这道题如果简单的用暴力三重遍历去做,会超时。所以我们思考假如有三个下标,i,l,r 其中i0(初始),li1 rnums.size()-1 我们固定nums[i]的值,那么就转换为两数之和…...