linux权限深度解析——探索原理

        前言:本节内容主要讲述的是linux权限相关的内容, linux的权限如果使用root账号是感受不到的, 所以我们要使用普通账号对本节相关内容进行学习,以及一些实验的测试。 然后, 通过linux权限的学习我们可以知道为什么有时候我们对一个文件进行操作的时候总是permission dinied, 以及让我们知道根目录下的文件权限和我们普通用户家目录下的文件的权限的区别。

        ps:本节内容适合正在学习linux并且懂得一些linux指令的友友们观看。

用户分类

//首先认识一下linux下用户的分类:

  • root:超级用户, 管理员
  • 普通用户:也就是我们创建出来的一些用户。 (addusr出来的普通用户)

这两个用户的根本区别就是root用户不受权限的约束, 而普通用户会受到权限的限制。

//su

普通用户能够切换成为root用户, root用户也能够切换为普通用户。

普通用户切换成root用户:

        第一种——su + root密码。 就可以切换成为root用户了。 这个时候如果切换,那么切换后用户所处的位置不变。 

        第二种——su-  + root密码。 同样是切换成root用户。 这个时候如果切换, 那么切换后用户的位置变成root自己的家目录

以上两种情况切换后都可以使用cral + d切换回来。 

root用户切换成普通用户——root用户切换成为普通用户不需要密码, 直接就可以切换。 

普通用户切换成位普通用户

普通用户切换成为普通用户一般一般有两种方式:

        第一种——拥有该普通用户的密码, 那么就可以使用su + 用户 + 用户的密码进行切换身份

        第二种——先切换成root用户(切换方式参考上面), 然后再通过root身份直接切换成指定用户。

注意, 意识身份切换都可以使用cral + d切换回来。 

指令提权:我们在执行指令的时候, 可以不切换成为root用户, 而是只对其中一条指令进行提权, 这个时候就用到了sudu + 指令 + 当前用户的密码。这里可能友友们会有疑问, 为什么对某一条指令进行提权要输入的是自己的密码, 而不是root的密码。 那是因为这个指令提权是有条件的, 那就是只有某个用户被添加到系统的白名单中, 才能够进行指令提权。 而如果没有被添加到白名单中, 提权指令是没有用的 。

什么叫做权限

权限大白话就是一件事情是否允许被你做, 这就是权限。

一个用户的身份分为:拥有者, 所属组, 其他人。

我们看下面这几串命令行:

        这里面, 第一个_mian_yang起始就是代表文件的拥有者, 第二个_mian_yang代表文件的所属组。 就是说, 这些文件的拥有者是_mian_yang, _mian_yang就是拥有者身份;这些文件的所属组是_mian_yang, 如果一个用户所属于_mian_yang这一个小组, 那么他就是所属组身份;而如果一个用户既不是_mian_yang, 也不在_mian_yang这个所属组里面。 那么这个用户就是其他人的身份。 

        那么假如有一个校长叫做张三, 张三要去他自己的校长办公室。 那么请问, 张三能够去校长办公室是因为它是张三呢, 还是因为它是校长呢。 这里显然是因为他是校长, 所以他能够去自己的校长办公室。那么, 对于我们的文件来说, 我们能访问这个文件, 是因为我们是这个用户呢?还是因为我们用户的身份呢? 答案是身份。即权限认证的是身份。 

        第二个问题, 我们都知道手机的功能有很多, 我们可以在上面看视频, 查资料, 打游戏等等。 这些可以看作手机拥有的属性。 但是, 当我们饿了的时候, 我们不能将手机吃掉让我们不再饥饿。 能够作为食物这是手机不具备的属性。 那么我们无论如何, 即便是有最高权限的人, 也不能让手机可以成为食物, 所以。 我们就可以知道第二点, 即权限也和事物的属性有关。 

//身份与用户的关系

        谈完三种权限, 我们结合之前的用户分类, 思考一下权限和用户分类之间的关系。 

        首先, 对于一个普通用户来说, 这个普通用户既可能是一个文件的拥有者, 也可能是一个文件的所属组, 也可能是其他人。 

        对于root用户来说, root用户既可能是一个文件的拥有者, 也可能是一个文件的所属组, 也可能是其他人。 

 那么, 具体是怎么体现的呢?也就是linux是如何判断这个用户的身份的呢? 我们还是看这张图:

        对于绿框框和橘框框, 绿框框是拥有者, 橘框框是所属组。 那么对于任何一个登陆的用户在访问一个文件的时候, 都要先看一下是不是文件的拥有者, 如果不是, 就要看一下是不是文件的所属组。 如果还不是,那么就是其他人other。

//文件的权限

        继续看这张图, 对于这张图来说, 粉色框框里面的就是各个身份的权限。 绿色横杠是拥有者权限, 橙色横杠是所属组权限, 蓝色横杠是其他人权限。  其中, 每个身份都有rwx三个权限, 这三个权限为一组, 并且这三个权限的位置是确定的。第一个位置为读, 第二个位置为写, 第三个位置为为可执行, 这三个位置不会发生乱序, 每一个位置是什么含义都是确定的!并且每一个位置只有是或者否, 具有指定的权限。

        这里思考一下, 为什么要有所属组这个权限? 

假如张三和李四都进入了一家公司进行面试, 最后都成为了一家公司的实习生,然后分别被分到了A组和B组。 并且张三是A组, 李四是B组, 现在这个公司让这两个组同时开发一款软件。 有一天张三写了一串很厉害的代码, 李四就像看看, 但是张三不想让李四看。但是呢, 有一天领导想要看一下张三写的代码, 但是呢, 如果张三将代码的阅读权限放开, 那么李四就能够看到了, 所以所属组就在这个时候起了作用。 让这个领导属于这个所属组,这样,这个程序我能看,领导也能看, 而其他人就看不了了。

权限的修改

能够修改权限的只有两个人, 一个是拥有者, 一个是root。 

方法:chmod u + rwx修改拥有者改的权限, 给拥有者加上权限(r读权限, w写权限, x执行权限)

chmod u-rwx修改拥有者的权限, 给拥有者减去相应的权限

chmod g+rwx修改所属组的权限, 给所属组加上权限

chmod g-rwx修改所属组的权限,, 给所属组加上权限

chmod g-rwx修改其他人的权限,, 给其他人加上权限

chmod g-rwx修改其他人的权限,, 给其他人加上权限

也可以给多个身份权限 chmod u+rwx, g+rwx就是给所属组, 拥有者加上权限, 减去权限相反。

比如说想要一次性给所有身份加上权限, 那就是chmod a+rwx, 减去权限相反。

另外, 除了更改权限之外, 我们还可以更改一个文件的所有者和所属组。 

更改文件所有者:chown 用户 文件 将某个自己的文件给某人, 更改拥有者。

更改文件所属组: chgrp 用户 文件 更改所属组。

        上面两条指令都需要对应用户的同意, 一般有两种方式: 一种是提权, su, 另一种就是线下进行沟通。

        对于权限来说, 我们使用ll看到的每一个位置的权限都是确定的, 所以, 我们可以利用1代表该位置有权限, 0代表该位置没有权限。 所以我们就可以用111, 110表示一个身份的权限, 比如111就是拥有读写, 执行。111就是7, 所以三个身份就可以利用三个八进制位进行表示, 比如777.

        所以, 我们修改权限就可以这样修改了——chmod 777, 意思是给所有身份所有权限。 

        现在, 我们来看这样一个例子:

        现在, 对于_mian_yang这个用户来说, 他的拥有者身份有读权限, 没有写权限;他的所属组身份有读权限, 有写权限。 

        那么这个时候, _mian_yang能对这个文件进行写吗?

        答案是不能, 因为用户在认证身份的时候, 只能认证一个身份, 首先认证拥有者, 然后再认证所属组, 最后再认证其他人。 

umask

为什么我们创建文件出来的时候, 权限是这个样子呢?

首先, 我们需要知道的是, 图中的权限是文件创造出来的最终权限, 他们其实还有一个起始权限——这个起始权限目录文件默认为777, 普通文件默认为666。但是为什么最终创建出来的权限, 目录文件是775, 普通文件是664呢?

这是因为系统中默认有一个umask——权限掩码。 权限掩码就是, 凡是在umask中出现的权限, 不会在最终权限中出现, 这里的计算规则不是默认权限 - 权限掩码, 而是最终权限 = 默认权限 & (~权限掩码)

同时, umask也可以修改, 比如umask 数字, 就是将权限掩码修改为某个数字

目录读写的含义

        目录的读:允许我们查看当前目录中的文件内容

        目录的写:允许我们进行文件的创建, 删除和更改

        目录的可执行: 是否允许我们进入目录。 

粘滞位

        在实际中我们可能有着这种需求: 就是我们想要对数据实现共享, 但是如果我们把目录创建到自己的家目录底下, 别的用户进不去。所以这个目录只能建立到根目录下面, 但是根目录的默认权限是dr-xr-xr-x, 就是三个身份都只能读和可执行, 不能够随意创建目录 。所以就需要使用root账户创建目录。 

        创建好这个文件后, 这个文件我们就可以设置other身份可以读取和写以及执行, 否则就无法共享。 但是如果一个用户在里面创建了文件,因为该目录下有写权限, 就会导致别的人可以随意删除这个文件。所以这个时候为了保护这个文件, 就添加了粘滞位的操作。 这个粘滞位的操作可以保证用户创建的文件只能由用户自己或者root删除。 

        所以, 粘滞位就是是专门给目录设置的一种权限, 一般是共享目录, 大家可以在目录下进行各自的增删查改, 但是只有拥有者和root可以删除这个文件, 其他人不可以。

------------------

以上就是本节的全部内容。

下面是本人的笔记:

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

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

相关文章

合合TextIn - 大模型加速器

TextIn是合合信息旗下的智能文档处理平台,在智能文字识别领域深耕17年,致力于图像处理、模式识别、神经网络、深度学习、STR、NLP、知识图谱等人工智能领域研究。凭借行业领先的技术实力,为扫描全能王、名片全能王等智能文字识别产品提供强大…

SpringBoot相关

SpringBoot 1. what springboot也是spring公司开发的一款框架。为了简化spring项目的初始化搭建的。 spring项目搭建的缺点: 配置麻烦依赖繁多tomcat启动慢 2 .springboot的特点(why) 自动配置 springboot的自动配置是一个运行时(更准确地说,是应用程…

关于斯坦福TTT,大家难道没啥可唠的嘛~?

TTT与transformer也好或manba也好它们之间背后的本质思想,表面上来看是对上下文进行状态表征压缩,再细想来看,均是一种对输入自身结构的一种线性建模变换,不过三者间所采用线性建模方法和策略各有不同和优劣,而TTT在这…

【C++ Primer Plus】学习笔记1

文章目录 前言一、预备知识二、基本语法1.main函数2.有返回值的函数C程序应当为程序中使用的每个函数提供原型3.自定义函数 总结 前言 一直没系统学过C,最近接触了一段时间Java发现还是不太喜欢,所以转向C开发了qaq。因为学过C语言不算零基础了&#xf…

软件杂志软件杂志社软件编辑部2024年第4期目录

基金项目论文 “互联网”环境下智慧教育支撑平台的架构研究 黄孔曜; 1-3 基于机器学习的Web网络爬虫算法优化研究 刘俊培;贾继洋;班岚;迟欢;孙沛叶; 4-7 基于Ant Design Pro的物流系统前端开发与用户体验优化研究 王菊雅; 8-10《软件》投稿:cnqikantg12…

【建议收藏】一万字图文并茂,终于有人把GPT的玩法整理全了

1. 学生常用 1.1 辅导作业、写作业 打数学建模和写期末作业~ Openai GPT-4o 模型从 2024 年 5 月发布以来,作为各项性能评测综合第一的 GPT。 对于法律类,语言类的作业,随意秒杀了!! 所以我决定让他做一道高等数学…

keepalived+nginx实现高可用

1. keepalived需要了解的知识 1.1 业务场景: 如果我们有个网站,最开始只有一台服务器对用户提供服务,业务架构图如下: 当业务量增大时,这台服务器支撑不了那么大的流量,随时会出现宕机的风险,…

Dr4g0nb4ll靶机

信息收集 使用arp-scan生成网络接口地址,查看ip 输入命令: arp-scan -lnmap扫描端口开放 TCP 输入命令: nmap --min-rate 10000 -p- 192.168.187.184 //以最低10000的发包速率扫描全部端口可以看到目标只开放http的22和80端口 UDP …

鸿蒙Harmony--文本组件Text属性详解

金樽清酒斗十千,玉盘珍羞直万钱。 停杯投箸不能食,拔剑四顾心茫然。 欲渡黄河冰塞川,将登太行雪满山。 闲来垂钓碧溪上,忽复乘舟梦日边。 行路难,行路难,多歧路,今安在? 长风破浪会有…

2024最新国际版抖音TikTok安装教程,免root免拔卡安卓+iOS,附全套安装工具!

我是阿星,今天给大家带来是2024年最新TikTok国际版抖音的下载和安装教程,而且还是免root免拔卡的那种,安卓和iOS都能用哦!由于某些原因,国内用户并不能使用TikTok。今天阿星就教一下大家怎么安装TikTok。 TikTok在全球…

张爱华:身残志坚谱写人间大爱 推己及人彰显巾帼风采

张爱华,女,1963年2月出生,响水县聚贤养老协会会长、响水县小尖镇爱华老年公寓院长。张爱华因患小儿麻痹症导致下肢重度残疾,但她身残志坚,通过创办服装厂慢慢走上致富之路。2011年,她先后筹资、贷款600多万…

UART串口通信实验

一.通信种类 1.1按照数据通信方式 1.1.1串行通信 优点:占用的引脚少,成本低 缺点:传输速度慢 适用场合:长距离、低速率的通信场合 1.1.2并行通信 优点:传输速率快 缺点:占用引脚多,成本…

【开源项目的机遇与挑战】探索、贡献与应对

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《热点时事》 期待您的关注 目录 引言 一:开源项目的发展趋势 🍃开源项目的蓬勃发展现状 🍃开…

VSCode 远程反复输入密码不能链接问题解决

通过 vscode 远程连接服务器时出现了连接不上,而且一直要循环输入密码的问题,可能是因为上次异常退出导致。 主要解决思路是删除当前 vscode 远端服务后,重新建立连接。 解决方法一 在 vscode 端接口删除 vscode 服务。 View->Commond…

vue 使用腾讯地图 标点 自定义瓦片 折线配置

vue 使用腾讯地图 标点 自定义瓦片 折线配置 申请腾讯地图秘钥 key 腾讯地图开发者 https://lbs.qq.com/dev/console/application/mine 腾讯地图开发文档 https://lbs.qq.com/webApi/javascriptGL/glGuide/glOverview 添加 key 代码中引入 // 入口文件 index.html // 填…

【通信原理】其实QPSK就是一种特殊的QAM,即4-QAM

文章目录 幅度调制和相位调制QPSK(Quadrature Phase Shift Keying)QAM(Quadrature Amplitude Modulation)QPSK作为4-QAMQPSK(Quadrature Phase Shift Keying)和QAM(Quadrature Amplitude Modulation)都是数字调制技术,用于在无线信号中传输数据。要理解“QPSK其实就是…

新旧电脑数据转移方法

随着科技的发展和电脑性能的不断提升,许多用户在工作和生活中都需要更换新电脑。当我们购买了一台新电脑后,如何将旧电脑中的数据转移到新电脑上成许多用户关注的问题。本文将详细介绍几种有效的电脑数据转移方法,帮助大家顺利完成数据迁移。…

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用,该插件可同时支持windows和国产系统 在实际项目开发中,以下场景可能会用到Word局部编辑功能: 合同审批公文流转策划设计报告汇签单招投标(标书文件)其他,有模板且需要不同人员协作编辑…

06.TMS570LC43入门指南——中断操作

06.TMS570LC43入门指南——中断操作 文章目录 06.TMS570LC43入门指南——中断操作一、简介二、中断(VIM)介绍2.1 VIM架构2.2 CPU 中断处理2.3 VIM中断通道映射2.4 中断请求默认分配 三、项目实现3.1 硬件部分3.2 软件部分3.2.1 HALCoGen 配置3.2.2 CCS 配…

RK3588部署YOLOV8-seg的问题

在使用YOLOV8-seg训练出来的pt模型转为onnx的时候,利用以下仓库地址转。 git clone https://github.com/airockchip/ultralytics_yolov8.git 在修改ultralytics/cfg/default.yaml中的task,mode为model为自己需要的内容后, 执行以下语句 cd …