Linux权限概念与思想,能深度理解“权限”,看这一篇就够啦

news2024/11/14 1:26:10

目录

一、Linux权限的概念

a.什么是权限?

b.权限的本质

c.Linux中的用户

1.从root用户切换到普通用户user:

2.从普通用户user切换到root用户:

3.我不想直接变成root,但是我就是想以root的身份执行一个工作?

4.Linux中具体的角色需要用具体的人来扮演

二、如何修改权限

1、快速修改权限的做法

2.除了修改权限以外,我们还可以修改所属组和拥有者:

b.除以上的修改方法我们还可使用八进制

三、文件类型

a.LInux不通过后缀名区分文件类型,不是说Linux不用后缀

b.Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要

四、目录的权限

1.如果我们要进入一个目录,需要什么权限?

2.Linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?

umask(Linux 默认权限掩码)

五、为什么我们一个普通人能够删掉别人的文件(包括root)?合理吗?

六、如果想在Linux下,由多个用户建立共享一个文件,来被大家共同访问,怎么办?

粘滞位:


一、Linux权限的概念

a.什么是权限?

就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,有无,或者能还是不能的问题。例如vip、门禁。

b.权限的本质

权限与人有关、权限和事物的属性有关

权限=人(角色)+ 事物(文件)的属性

c.Linux中的用户

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

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

举例

1.从root用户切换到普通用户user:

2.从普通用户user切换到root用户:

3.我不想直接变成root,但是我就是想以root的身份执行一个工作?

利用指令提权sudo(但是大有可能你还不能做到,在下一篇博客讲vim时再来解决这个问题)

你应该会有这样的报错,这是配置前,因此接下来使用到sudo的指令,你都可以先切换为root再执行。

4.Linux中具体的角色需要用具体的人来扮演

前面的:-rw-r--r--,不看第一个,后面的三个为一组分别表示

每组第一个字符r:具有可读权限

每组第二个字符w:具有写权限

每组第三个字符x:具有可执行权限

- 就是不具有以上的权限。

因此我们上面给的图的意思就是:

1.拥有者具有的权限是:可读可写权限

2.所有组具有的权限是:可读权限

3.其他具有的权限是:可读权限

举例:

我们现在新创建一个用户:

先让原来的用户创建一个文件:

other到底是什么?对于test.txt来说,拥有者是pupuruin,所属组是pupuruin,则study和root对于这个文件来说就是other,other的权限是只可读

检验:

在study时:

在root时:

为什么root对于test.txt来说是other却仍然可以在文件中写内容呢?因为root是超级管理员,不受权限的限制。

可执行性:

我们在test.c中简单的这样写

从这里可以看出由于study对于test.c来说是其他人不具有可执行性也不具有可写性,因此无法编译。

二、如何修改权限

1.快速修改权限的做法

一个文件的权限,谁能修改?

a.拥有者

b.root

chmod u+/-rwx,g+/-rwx,o+/-rwx,a+/-rwx filename   

u----user

g---group

o---other

a----all

若想同时为u g o改变权限就使用a+/-rwx filename

示例:

如图当我们为test.txt的所属组和其他人加上相应权限后所发生的改变

这就证明我们的修改是有效的:

那可执行性呢?

原本的test.c对于pupuruin来说是不具有可执行性的,因此我为他加上了这个权限

但是我们发现,他已经具有了可执行性了,却不能被编译

这是为什么?

如何理解x

可执行权限 vs 可执行

能执行 = 具有可执行权限 +你就是一个可执行文件

他现在只具有可执行权限,但他却不是一个可执行文件

2.除了修改权限以外,我们还可以修改所属组和拥有者:

a.

修改拥有者:chown name filename

修改所属组:chgrp name filename

chown name1(拥有者):name2(所属组)filename

(为什么没有修改other的指令,因为不需要!!)

示例:

如图,我们可发现只有root能修改所属组和拥有者

b.除以上的修改方法我们还可使用八进制

chmod 八进制 filename

示例:

三、文件类型

Windows是如何区分文件类型的?

后缀名

a.LInux不通过后缀名区分文件类型,不是说Linux不用后缀

通过什么来区分?ls -l 第一个属性列:

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

b.Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要

Linux != gcc 

Linux 不区分文件类型

但Linux上面的工具可能区分!

四、目录的权限

1.如果我们要进入一个目录,需要什么权限?

进入一个目录需要x权限

目录的r权限:用户能否查看指定目录内的文件信息

目录的w权限:决定用户是否能在指定的目录内新建、修改,删除文件。

文件 = 内容(该目录里面所有的文件信息详细数据)+ 属性

证明:

2.Linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?

最终权限就是我们所看到的样子

umask(Linux 默认权限掩码)

这是我的umask默认值:(大家的umask默认值会不同,这是正常的)

五、为什么我们一个普通人能够删掉别人的文件(包括root)?合理吗?

a.删除一个文件和目标文件有关系吗?没关系!!

b.和谁有关系? 和我所在的目录有关系

无论任何人,在我的目录下建立文件,都可由我删除,因为我有对这个目录的w权限

六、如果想在Linux下,由多个用户建立共享一个文件,来被大家共同访问,怎么办?

1.首先这个文件,不能在我们各自的家目录下创建,为什么?其他人看不见,进不来

2.因此,我们只能在系统的非用户目录下创建

当前,我(pupuruin)准备新建一个文件和student1共享,不想让study看,study可以删吗?

study可不可以删取决于他(other)拥有的权限。

首先,我们先创建一个目录,并且为所有人打开写权限

现在所有的人都拥有在目录里 w 的权限,因此其他人也可以删该目录中的文件

pupuruin建立一个test.txt文件,并且打开了其他人可写的权限

如图,我(pupuruin)和student1共享文件test.txt,而study他可以看我们的共享文件,也将我们共享的文件给删掉,怎么办?

粘滞位:

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

a.超级管理员删除

b.该目录的所有者删除

c.该文件的所有者删除

(一般a,b是同一人)

示例:

pupuruin创建一个新文件,study来删,已经不能删了

对于此时的study已经不具有w权限了

对于现在的log.txt来说,只有pupuruin、root能删,而study和student1都不能删

结语:

       随着这篇关于题目解析的博客接近尾声,我衷心希望我所分享的内容能为你带来一些启发和帮助。学习和理解的过程往往充满挑战,但正是这些挑战让我们不断成长和进步。我在准备这篇文章时,也深刻体会到了学习与分享的乐趣。

       在此,我要特别感谢每一位阅读到这里的你。是你的关注和支持,给予了我持续写作和分享的动力。我深知,无论我在某个领域有多少见解,都离不开大家的鼓励与指正。因此,如果你在阅读过程中有任何疑问、建议或是发现了文章中的不足之处,都欢迎你慷慨赐教。         你的每一条反馈都是我前进路上的宝贵财富。同时,我也非常期待能够得到你的点赞、收藏,关注这将是对我莫大的支持和鼓励。当然,我更期待的是能够持续为你带来有价值的内容,让我们在知识的道路上共同前行。

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

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

相关文章

EXCEL 分组后找出满足条件的行拼接起来

Excel某表格有四列,其中第2列是分组列。 ABCD11a1yet22a2done33a3yet44b1done55b2done66b3done77b4yet88b5done 现在要按第2列分组,找到每组第4列等于"done"的行,将这些行的第3列用逗号拼起来,再与分组名、行号组成新…

Unity动画模块 之 动画层混合

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.动画层 动画层 - Unity 手册,动画层的作用 混合模式 覆盖和叠加模式,很好理解吧 权重 到底…

若依权限控制前端+后端实现思路梳理(PreAuthorize、hasPermi、v-hasPermi)

一、权限控制引发的思考 引言 最近接手了公司的一个项目,实施反馈说,客户那边要求对不同的权限的用户操作权限做限制。场景就是,比如一个项目列表,这部分数据有可能是针对某个公司某个部门的,对应不同的部门用户能看…

云岚到家 第一天

你的项目是做什么业务的? 家政服务,我的项目是一个家政o2o平台。o2o(Online To Offline)是将线下商务的机会与互联网的技术结合 什么商业模式: 项目涉及哪些角色? 本项目涉及如下角色: 家政…

技术前沿:WebRTC与H.265编码的兼容性挑战与应对策略

WebRTC(Web Real-Time Communication)是一种支持网页浏览器进行实时语音通话、视频聊天以及P2P文件共享的技术。然而,标准的WebRTC API在大多数浏览器中默认并不支持H.265(也称为HEVC,高效视频编码)编码。这…

Android 中native C++创建thread的几种方式

Android native 开发,工作中最常用的两种创建thread的方法,总结如下: 使用 pthread 库 (1)概念:它是一套在类 Unix 操作系统上进行多线程编程的接口, 而android 基于Linux , Linux就是一个类 U…

用序列模型(GPT Bert Transformer等)进行图像处理的调研记录

Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction 北大和字节团队的一篇VLM,在生成任务上,用GPT范式,声称在FID上超过了DIT,SD3和SORA。开源。首先是multi-scale的VQVAE,然后是…

Datawhale X 李宏毅苹果书 AI夏令营 学习笔记(一)

局部极小值与鞍点 在优化过程中,模型可能会遇到局部极小值(local minima)或鞍点(saddle point),这些位置梯度为零,使得模型停止进步或训练缓慢。 局部极小值是损失函数的局部最低点,而鞍点则是梯度为零但不是局部极小/极大值的点…

Leetcode JAVA刷刷站(80)删除有序数组中的重复项 ||

一、题目概述 二、思路方向 为了解决这个问题,我们可以使用双指针技术。一个指针(我们称之为i)用于遍历数组,另一个指针(我们称之为j)用于记录不重复或只重复一次的元素应该放置的位置。同时,我…

创新实践:流媒体服务器如何推动WebRTC支持H.265及JS硬软解码(MSE硬解、WASM软解)

为了实现这一全面的解决方案,我们投入了近半年的时间进行调研与研发。我们的主要目标是:让流媒体服务器能够直接传输H.265编码的视频,而无需将其转码为H.264,从而使Chrome浏览器能够无缝解码并播放H.265视频。 值得注意的是&#…

TinaSDKV2.0 自定义系统开发

TinaSDKV2.0 自定义系统开发 什么是自定义系统? TinaSDK Kconfig界面配置 Tina Linux采用 Kconfig 机制对 SDK 和内核进行配置。 Kconfig 是一种固定格式的配置文件。Linux 编译环境中的 menuconfig 程序可以识别这种格式的配置文件,并提取出有效信息…

Flink常见数据源(source)使用教程(DataStream API)

前言 一个 Flink 程序,其实就是对 DataStream 的各种转换。具体来说,代码基本上都由以下几部分构成,如下图所示: 获取执行环境(execution environment)读取数据源(source)定义基于数据的转换操作(transformations)定义计算结果的输出位置(sink)触发程序执行(exec…

探索上门回收旧衣物系统源码开发的创新与挑战

在当今社会,随着环保意识的日益增强和可持续发展的全球趋势,旧衣物回收与再利用成为了一个备受关注的议题。为了响应这一需求,开发一套高效、便捷的上门回收旧衣物系统,不仅有助于减少环境污染,还能促进资源的循环利用…

[数据集][目标检测]电力场景输电线导线散股检测数据集VOC+YOLO格式3890张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3890 标注数量(xml文件个数):3890 标注数量(txt文件个数):3890 标注…

Koa商城项目-商城模块(前端)

项目地址 koa_system: 🔥🔥🔥Koa2 React商城项目前端-React Antd前端-Vue2 Element-plus后端-Koa2 Sequelizehttps://gitee.com/ah-ah-bao/koa_system 欢迎大家点击查看,方便的话点一个star~ 项目结构 Vue2Admin和Vue3Admin版本的后台还…

Deep-Live-Cam启动

实验环境 实验时间:2024年8月windows 10 专业版能跟老外对喷的网络环境基于 Anaconda 创建 Python 3.10.x 环境 其它依赖 下载生成工具:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/安装单个组件:共三个。 安装ffm…

Python酷库之旅-第三方库Pandas(093)

目录 一、用法精讲 396、pandas.Series.to_frame方法 396-1、语法 396-2、参数 396-3、功能 396-4、返回值 396-5、说明 396-6、用法 396-6-1、数据准备 396-6-2、代码示例 396-6-3、结果输出 397、pandas.Series.to_xarray方法 397-1、语法 397-2、参数 397-3、…

算法的学习笔记—二叉树中和为某一值的路径

😀前言 在二叉树中寻找和为某一特定值的路径问题是一个经典的面试题,考察了对二叉树的遍历能力以及递归和回溯算法的理解和应用。本文将详细解析这一问题,并提供一个Java实现。 🏠个人主页:尘觉主页 文章目录 &#x1…

Java工具类之字符串类(超详细)

1、 字符串类 字符串是我们在编程中最常使用的一种数据类型,Java中用类来描述字符串,其中最常用的字符串处理类是String,此外还有StringBuffer和StringBuilder。在本节,我们会了解每种字符串处理类的特点,以便能在应用…

C语言基础(十二)

指针的用法&#xff1a; 测试代码1&#xff1a; #include "date.h" #include <stdio.h> // 函数声明&#xff0c;用于交换两个整数的值&#xff0c;通过指针传递 void swap(int *a, int *b); int main() { int time getTime();int nums[3] {3, 1, 4};…