【Linux庖丁解牛】—权限!

news2024/11/18 8:28:13

目录

1、shell命令以及运行原理

2、Linux中的用户及用户切换

3、sudo指令

​编辑 4、角色与目标属性

5、修改权限

5.1修改文件属性(chmod)

5.2修改文件角色(chown/chgrp)

6、rwx对目录意味着什么

7、Linux中多用户之间的相互“隔离”

8、Linux中的缺省权限

​编辑

9、粘滞位


1、shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel? 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

>将使用者的命令翻译给核心(kernel)处理。

>同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运 行出结果,通过shell解析给用户。

>帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫 它王婆,它对应我们常使用的bash

2、Linux中的用户及用户切换

Linux下有两种用户:超级用户或超级管理员(root)、普通用户:

超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

命令:su [用户名]

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令(密码):

su可以切换到超级用户,su -也可以切换到超级用户,它们之间的区别是:

su 仅仅只是切换用户,并不会改变当前工作目录,而su -会切换用户并重新登入shell(会改变当前的工作目录)

3、sudo指令

sudo是用来进行指令的短暂提权的!(第一次提权需要输入自己的密码)

比如:安装软件,安装到系统中,需要管理员root权限。其实只安装了一份,允许大家同时使用!

不过,我们新安装的Linux机器使用普通管理员的身份直接使用sudo进行提权一般都会报错 !      

Linux中有一个类似于白名单(被信任的人)的东西,只有出现在白名单的用户才能使用sudo进行提权!不然人人都会是root!

只有管理员root将指定用户添加到白名单后,该用户才能进行sudo提权:

 4、角色与目标属性

权限的本质是:能或者不能做什么事情!

权限的意义是控制用户的行为,防止错误的发生。权限首先限制的是角色(人),权限要求目标具备对应的属性。(权限=角色+目标属性

Linux中包含三种角色:拥有者,所属组,other。 rw对应的权限是读写,x对应的权限是可执行!

怎么不见other呢?other就是除拥有者,所属组之外的角色。

为什么需要所属组呢?更精细化的身份角色是为了更精细化的权限管理。

因此我们可以这样描述上面的文件权限信息:

该文件的拥有者是root,有读写和执行的权限。所属组是root,有读和执行的权限,但没有写的权限。other有读和执行的权限,但没有写的权限。

5、修改权限

5.1修改文件属性(chmod)

操作演示:

重点部分:

1、用户只能更改自己的文件权限

2、没有对应的权限,系统会拒绝我们的访问

3、确定权限信息的时候,系统会先确定用户是谁?拥有者,所属组,other。用户角色只确定一次,顺序是:拥有者,所属组,other。

4、root不受权限约束。

5、一个文件有可执行权限并不等于该文件可执行。

>其实修改文件属实还有另一种方法

我们会发现在9个权限位中,任何一个权限位都是两态的(即可~或不可~)。那这就可以用二进制的01序列来表示。如:

5.2修改文件角色(chown/chgrp)

如果我们是普通用户,系统默认不允许我们把文件给别人!

想给别人,必须高权限 !

如果我们想要修改所属组,使用chgrp即可 ,我们也可以使用chown来同时修改拥有者和所属组:

6、rwx对目录意味着什么

如果我想要进入一个目录,我需要什么权限?下面来做一个实验。

通过以上实验,我们会发现,想要进入一个目录,我们必须具备对应的x权限!

对于一个目录,其里面的文件和目录就是它的内容,所以:

如果没有r权限,我们就没有办法查看目录里面的文件。

如果没有w权限,我们就没有办法在目录里面删除或新建文件。

所以,我们新建一个目录,系统默认其都会有rwx权限。

7、Linux中多用户之间的相互“隔离”

通过上面用户目录的权限,我们可以得出结论:任何一个用户都无法进入其他用户的家目录。从而实现了多用户之间的隔离!

8、Linux中的缺省权限

对于普通文件来讲,它的起始权限是666实际是(664)。(默认不带可执行)

对于目录来讲,它的起始权限是777实际是(775)。(默认携带x)

为什么默认权限是我们看到的样子呢?

因为系统默认会存在一个叫权限掩码的概念!

最终权限= 起始权限&(~umask)

umask的目的是希望凡是在umask中出现的权限都不会在最终权限中出现。

为什么要有umask呢?

a、默认权限由os自主决定,无法在创建前进行修改 ——系统可配置,可以灵活满足需求的一种表现。

b、在特殊情况下,配置umask,可以控制文件的默认权限,让我们的代码是可控的! 

umask也是可配置的:  

9、粘滞位

一个文件是否可以被删除,与文件本身无关!与文件所处的目录w权限有关!举个栗子:

上面user2目录的拥有者和所属组都是user2,也就是说user2的目录竟然出现在用户user1里面。并且user1对其没有rwx的所有权限,但是我可以把这个文件删除!

究其原因,也就是在我的目录里面的所有文件我都有删除和新建的权限(即使这个文件我不能读,不能写),因为我对于这个目录有w权限!

下面抛出一个问题:如果两个用户要进行文件级别的写作呢?

比如user1负责进行数据的统计,而user2负责拿到user1的数据统计结果进行数据分析。

通过上面的实验,我们可以知道这个协作的文件不能放在任何一个私人账号。因为多用户之间有隔离,通常情况下,我连你的家目录都进入不了,更不用谈访问你的文件。但是我其实可以通过root或者sudo提权进入你的家目录,但我们通常不考虑这种情况。

所以我们就可以在共享类文件当中进行协作,所有人都可以在这个目录当中新建自己的文件,对不同的角色开放不同的权限!Linux中就有一个自带的这种临时共享文件tmp!

但这势必也会引起一个巨大的问题,因为这个共享目录对所有人的权限都是rwx,那也就意味着所有人都可以随便删除别人的文件(因为上面也实验过,删除一个文件与文件本身无关,与文件所处目录的w权限有关)

此时,我们的需求之间就有了矛盾:我们即想要共享文件,又想要自己新建的文件不被别人删除。

而所有技术的出现都是建立在需求之上的!

为了解决这个不科学的问题,Linux引入了粘滞位的概念:

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

Linux默认自带的共享文件就可以完美解决以上的问题,所以我们一般不需要自己建立共享目录。 

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

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

相关文章

uniapp对接极光推送,实现消息推送功能

通过集成JG-JPush和JG-JCore插件,可以在应用中添加消息推送功能,向用户发送通知、消息等。这对于提升用户体验、增加用户粘性非常有帮助‌。 效果图: 一、登录极光官网 官网链接:portalhttps://www.jiguang.cn/console/#/home点…

【3D Slicer】的小白入门使用指南八

3D Slicer DMRI(Diffusion MRI)-扩散磁共振认识和使用 0、简介 大脑解剖 ● 白质约占大脑的 45% ● 有髓神经纤维(大约10微米轴突直径) 白质探索 朱尔斯约瑟夫德杰林(Jules Joseph Dejerine,《神经中心解剖学》(巴黎,1890-1901):基于髓磷脂染色标本的神经解剖图谱)…

IP数据云 识别和分析tor、proxy等各类型代理

在网络上使用代理(tor、proxy、relay等)进行访问的目的是为了规避网络的限制、隐藏真实身份或进行其他的不正当行为。 对代理进行识别和分析可以防止恶意攻击、监控和防御僵尸网络和提高防火墙效率等,同时也可以对用户行为进行分析&#xff…

GPU分布式通信技术-PCle、NVLink、NVSwitch深度解析

GPU分布式通信技术-PCle、NVLink、NVSwitch 大模型时代已到来,成为AI核心驱动力。然而,训练大模型却面临巨大挑战:庞大的GPU资源需求和漫长的学习过程。 要实现跨多个 GPU 的模型训练,需要使用分布式通信和 NVLink。此外&#xf…

基于 PyTorch 从零手搓一个GPT Transformer 对话大模型

一、从零手实现 GPT Transformer 模型架构 近年来,大模型的发展势头迅猛,成为了人工智能领域的研究热点。大模型以其强大的语言理解和生成能力,在自然语言处理、机器翻译、文本生成等多个领域取得了显著的成果。但这些都离不开其背后的核心架…

数据集的重要性:如何构建AIGC训练集

文章目录 一、为什么数据集对AIGC如此重要?1. 数据决定模型的知识边界2. 数据质量直接影响生成效果3. 数据集多样性提升模型鲁棒性 二、构建AIGC训练集的关键步骤1. 明确目标任务和生成需求2. 数据源的选择3. 数据清洗与预处理4. 数据标注5. 数据增强 三、针对不同类…

全网首发:Ubuntu编译跨平台嵌入式支持ffmpeg的OpenCV

难题: 使用cmake编译,死活找不到ffmpeg 使用cmake-gui,能找到ffmpeg,不能编译。 解决思路 结合cmake和cmake-gui。 为了给初次编译的朋友一点方便,这里专门完整详细记录。 安装编译环境 其他的略。 apt -y in…

算法——两两交换链表中的节点(leetcode24)

这是一道对于链表节点进行操作的题目非常考验对于链表操作的基本功; 解法: 本题的解法结合下图来进一步解释 创建一个虚拟节点指向头结点以便使代码逻辑看起来更为简便且操作节点容易,定义cur是为了方便找到cur之后的两个节点进行交换操作定义pre和aft是为了保存执…

非对称加密算法RSA的实现

一、实验目的 1、了解非对称密码体制基本原理 2、掌握编程语言实现非对称加密、解密 二、实验原理 RSA加密算法是一种非对称加密算法,所谓非对称,就是指该算法加密和解密使用不同的密钥,即使用加密密钥进行加密、解密密钥进行解密。在RAS…

劳动力市场

1.劳动力市场概述 (1)劳动力:所有有工作能力且愿意工作的人的总称,由那些正在工作(就业)和正在寻找工作(失业)的人组成,表示为:L(劳动力&#xf…

拉取docker镜像应急方法

发现许多docker hub镜像网址速度也慢得发指啦,如果想速度快点,可以考虑买个按量计费的公有云服务器,用他们的内网镜像,然后再导出,然后传到本地。 开通服务器 可以考虑个开通最低配的,这里我用的是腾讯的…

go-zero(三) 数据库操作

go-zero 数据库操作 在本篇文章中,我们将实现一个用户注册和登录的服务。我们将为此构建一个简单而高效的 API,包括请求参数和响应参数的定义。 一、Mysql连接 1. 创建数据库和表 在 MySQL 中创建名为 test_zero的数据库,并创建user 表 …

113页PPT制造业研发工艺协同及制造一体化

研发工艺协同及制造一体化解决方案是制造业数字化转型的重要组成部分,它涵盖了从产品设计到生产的全过程,旨在提高生产效率、降低成本、提升产品质量,并增强企业的市场竞争力。以下是对该解决方案的详细阐述: 一、方案概述 研发…

【MySQL 保姆级教学】事务的隔离级别(详细)--下(14)

事务的隔离级别 1. 如何理解事务的隔离性2. 事务隔离级别的分类3. 查看和设置事务隔离级别3.1 全局和会话隔离级别3.2 查看和设置隔离级别 4. 事务隔离级别的演示4.1 读未提交(Read Uncommitted)4.2 读已提交(Read Committed)4.3 …

手机ip地址异常怎么解决

在现代社会中,手机已成为我们日常生活中不可或缺的一部分,无论是工作、学习还是娱乐,都离不开网络的支持。然而,有时我们会遇到手机IP地址异常的问题,这不仅会影响我们的网络体验,还可能带来安全隐患。本文…

STM32低功耗设计NFC与无线距离感应智能钥匙扣

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 在当今快速发展的物联网(IoT)时代&#xf…

Pyhon基础数据结构(列表)【蓝桥杯】

a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表(list)有由一系列按照特定顺序排序的元素组成 列表是有顺序的,访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…

关于win11电脑连接wifi的同时,开启热点供其它设备连接

背景: 我想要捕获手机流量,需要让手机连接上电脑的热点。那么问题来了,我是笔记本电脑,只能连接wifi上网,此时我的笔记本电脑还能开启热点供手机连接吗?可以。 上述内容,涉及到3台设备&#x…

SAP SD学习笔记13 - 出库确认(发货)之后的取消 - VL09

上一章讲了出荷传票的总结,以及出荷相关的其他知识,比如出荷控制,出荷传票登录的各种Tr-cd,Picking场所的决定,出荷传票的变更等内容。 SAP SD学习笔记12 - 出荷传票总结,出荷控制(出荷Type,出…

IDEA优雅debug

目录 引言一、断点分类🎄1.1 行断点1.2 方法断点1.3 属性断点1.4 异常断点1.5 条件断点1.6 源断点1.7 多线程断点1.8 Stream断点 二、调试动作✨三、Debug高级技巧🎉3.1 watch3.2 设置变量3.3 异常抛出3.4 监控JVM堆大小3.5 数组过滤和筛选 引言 使用ID…