【Linux】-Linux的权限

news2025/1/19 20:28:20

💖作者:小树苗渴望变成参天大树
❤️‍🩹作者宣言:认真写好每一篇博客
💨作者gitee:gitee
💞作者专栏:C语言,数据结构初阶,Linux,C++

在这里插入图片描述如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!

文章目录

  • 前言
  • 一、shell命令以及运行原理
  • 二、Linux权限的概念
  • 三、Linux权限的管理
    • 3.1文件访问者的分类(人)
    • 3.2文件类型和访问权限
    • 3.3目录的权限
  • 四、总结


前言

这篇我们来将Linux的权限问题,没有权限,哪Linux就都乱了,就好比社会,有的人能干这些事,有的人就被约束,这样才不会乱,而且很安全,所以再我们Linux再也有不同的身份,再将身份之前,我要先讲解一下shell命令以及运行原理,让打击更好的理解指令的作用,话不多说,我们开始进入正文讲解


一、shell命令以及运行原理

在这里插入图片描述
我们再输入指令的时候,本质是输入字符串,但是指令的本质,就是编译好的可执行程序或者脚本,存放再指定的目录下。我们所输入的一行指令,都叫命名行指令,也可以叫shell指令。

我们为什么要有指令??
我们的Linux严格意义来说和一个操作系统,和Windows操作系统一样,我们称之为“核心(kernel)”,我们用户不能直接去访问,就好比我们不能直接去访问Windows操作系统一样,因为操作难度比较大,我们通过图形化界面或者命令行解释器来访问操作系统,再Linux上,我们输入的指令最终都是需要再kernel上运行的,所以我们通过命令行解释器来和kernel进行对话。

就好比,你是你们村的张三,喜欢隔壁村的如花,但是你不善于交流,这时候叫来了王婆,让王婆来帮你们说亲,这时候张三就相当于用户,王婆相当于命令行解释器,如花相当于操作系统,但是有一天一个有才有钱的李四过来找如花,张三呢,就看不下去了,非得找王婆再帮忙说亲,当王婆刚过去如花家,看到他们正开心着吃着饭,也不好意思去打扰他们,就直接回头告诉张三你放弃吧,张三就廷王婆说放弃吧,通过这个例子,我们的王婆的任务就是,将张三的想法告诉给如花,但又不想打扰如花的美好生活

所以对于命令行解释器:

  1. 将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。
  2. 对于用户的非法指令,命令行解释器直接拦截,变相的保护核心

在这里插入图片描述
当我们输入非法指令的时候,bash命令行直接拦截,直接找不到
再我们Linux中,我们的命令行叫 bash ,又叫shell,还叫sh
在这里插入图片描述
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。

二、Linux权限的概念

对于我们的张三就相当于我们的用户,喜欢如花的肯定不止一个人,那么就一位着有不同的用户,但是用户不可能都是一样的,人也不可能是一样,再现实中,每个人都不一样,但在Linux,就有两种人,一个是超级用户(root),一个是普通用户
超级用户家里管的松,想出来减如花就出来,不收任何限制的,但是普通用户就不一样了,家教严,被家里人管着,想见如花总是被限制,所以这个家长就是Linux系统

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

在这里插入图片描述
我们看到我使用su之后命令行提示符就变了,权限变成了root用户

我们想要切换权限,就需要通过下面的指令去实现
命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

再前几篇博客,我都是以root账户登录的,现在使用普通用户登录的,使用su,只是身份权限变了,但还是普通用户登录的,对于Windows就好比下面的方式
在这里插入图片描述
我们的登录方式没有改变,对于su,从普通权限切换root权限需要输入密码,但是樊过来就不需要输入密码,所以大家最好把普通用户的密码和root密码设置不一样,方便理解。

如果想换登录方式,我们需要使用下面的指令

su -

在这里插入图片描述
大家看到执行命名之后出现了Last login:就用登录的方式切换到root账户了
退回来和上面用法一样:
在这里插入图片描述

对于退回到普通用户: 使用热键Ctrl+d或者exit。

对于权限的概念我想应该把大家将明白了,那我们来看看这些权限具体是怎么管理的吧


有的时候想要对一条指令进行提权,我们不需要直接切换到root权限.直接这样就行了:

sudo command

在这里插入图片描述
大家看到这种方法没有办法完成这件事,原因是我们的普通用户都是add user出来了,没有颁发执行sudo,因为系统不信任你,除非你将普通用户加到系统的白名单里面就行了,现在不做介绍,后面再介绍,他也怕你把每条指令都加sudo,那样普通用户就和root使用一样的效果了.

三、Linux权限的管理

3.1文件访问者的分类(人)

Linux用户分为两种:超级用户和普通用户,但是不管是那个用户,都可以再细分成三个(拥有者,所属组,其他者)

文件和文件目录的所有者:u—User(中国平民 法律问题)
文件和文件目录的所有者所在的组的用户:g—Group(不多说)
其它用户:o—Others (外国人)

在这里插入图片描述
我们来具体介绍一下这三者有什么关系吧

以普通用户为例:我们有一个xdh用户,还有一个bly用户,他们都是普通用户,xdh用户写了一个项目代码,xdh就是xdh这个用户的拥有者,bly作为普通用户也是其他用户来说,肯定看不到xdh用户写的项目,有一天你的主管想要看一下你写的项目,你的主管可不是超级用户哦,超级用户肯定是公司董事长负责,而且有许多不同的主管,他们都是普通用户,那主管怎么访问到xdh用户写的项目呢??但不被bly用户所访问到呢??这时候就需要将主管拉到xdh用户的所属组里面,相当于开了一个群聊,两个单独对话,外面的人不知道。

在这里插入图片描述

对于root账户也有这三个角色,但区别于普通用户,普通用户可以有很多个,root用户只能有一个,root用户的任何角色都能访问普通用户的任何角色,樊过来就不行

有了这个概念,我们再来介绍下一个知识点

3.2文件类型和访问权限

我们再第一节Linux指令就说到 ll是查看文件的具体属性
在这里插入图片描述

当时我们只看懂后面的内容,今天我就带大家理解前面的内容,再最前面的第一列我框出来的,这是文件的类型,文件有很多类型:

d:目录文件
-:普通文件
b:块设备文件
c:字符设备文件
p:管道文件

对于后面三种文件不止是什么文件不重要,后期我会介绍的,大家知道有这些类型的文件就行了,我将再Linux展示一下例子给大家看看:
在这里插入图片描述


细心的同学应该发现普通文件的后缀好像好i想有没有都无所谓,再Linux种文件的后缀对于操作系统没有实际的意义,但这不代表写不写都行,我们来看一个例子:

在这里插入图片描述
在这里插入图片描述
对于上面两个例子,上面那个可以运行,下面的不可以,gcc是一款编译器,是装在Linux上一款软件,第二个运行不了原因是他不是.c文件,对于gcc他是认后缀名的,所以后缀名还是有作用的.

讲完文件的类型,我们再讲解后面的内容

在这里插入图片描述
在这里插入图片描述

r:可读
w:可写
x:可执行
-对应权限的位置,无权限

在这里插入图片描述
都是再普通用户xdh下修改权限,本质还是xdh用户登录的.

都在同一个目录下进行权限的修改才可以,这样才能操作同一个目录,后面也会将这就是共享目录,我们只需要再test1再su切换成root权限,su bly切换其他用户权限,前提你有两个普通用户,还有一个所属组不展示也是一样的,通过root来反映

对于这个test.txt文件:我们对于所有者和所有组来说可读可写但不能执行,对于其他用户只能读,我们来看测试:
在这里插入图片描述
结果:
在这里插入图片描述
和我们看到的结果是一样的

对于权限,我们可不可以进行修改呢??
只有拥有者和root账户才能对文件的权限进行修改,以拥有者为例:
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
删除权限:
在这里插入图片描述
在这里插入图片描述

我们去掉所有权限,拥有者都没法访问了。对于root权限,还是可以继续访问的和写入的,但是执行也会受限制。,想要把权限再加回来,再拥有者上操作和再root上操作都可以
添加权限:
在这里插入图片描述

只能认证一个身份权限:

我们现在看一个案例,我们把拥有者的权限改成可读不可写,把所属组改成可读可写,这样看上去是有点冲突,我们来看看是否可以进行写入:
在这里插入图片描述
我的xdh权限既是拥有者也是再所属组里面,我在所属组里面有写的权限,为什么不行呢?? 原因是我们在进行权限认证的时候只会认证一个身份,只看一组,对于上面的例子,先看第一组,发现你是拥有者就按照拥有者的权限匹配给你,后面就不看,大家可以联系逻辑或的规则简单来理解这个

在这里插入图片描述
root作为所属组就可以写入,但是不可以执行,大家对于这种匹配机制理解了吧

补充:想要使每个角色的权限一样,使用chmod a+rwx test.txt 表示给所有角色加上相同权限

权限的另一种方式表示:

我们不管那种身份,都有对应的三个权限,读,写,可执行,而且每个位置的含义是固定的,第一个位置:r/-,第二个位置:w/-,第三个位置:x/-,每个位置只有是或者不是两种选择,是的话就是对应的权限,不是就对应-,所以每个位置可以1/0来代替

例如:

在这里插入图片描述
所以上面的权限也可以使用664代替,这样大大就很减小使用chmod的难度,我们来看案例:
将test.txt的权限改成r-xrw—x,对应的数字应该为561:
在这里插入图片描述
我们一种有三位,所以是八进制的表示方法,每个角色有0-7种选择,所以大家应该理解了这种权限的表示方法了吧

将拥有者和所属组改变:

# chown user1 f1

有点时候我想将自己写的文件给给别人,但是别人要同意才行啊,不是想给就给的,但是root权限可以强制给,我们来看案例:
在这里插入图片描述

# chown -R user1 filegroup1//递归式的将此目录文件修改子目录的拥有者。

不加的情况:

在这里插入图片描述
加的情况:
在这里插入图片描述

他的子目录的拥有者权限也被修改了

修改所属组也是相同的道理,我就不做具体的案例展示了,大家可以自己去试试:

chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

为什么默认的文件式我们看到的样子:
细心的同学就会发现,我们创建的目录文件和普通文件,看到的权限都是775和664
在这里插入图片描述

其实我们默认的普通文件起始是666,目录文件是777,为什么不是我们看到的样子呢??原因是有掩码的存在

umask:

在这里插入图片描述
我的机器掩码是0002,不同机器可能不一样,最前面的一个0不要管,我们关注后面的三位就好了

大家看到这里,最终的权限=起始权限-掩码,那我们来修改一下掩码为0001,看看结果是不是776和665
修改umask:
在这里插入图片描述

在这里插入图片描述
我新创建一个目录文件M1和一个普通文件tmp.txt,大家看到M1的权限是776,而tmp.txt是666.显然不是减法,776那个只是巧合,起始他遵循的规则是这样的:起始权限&(~umask)=最终权限,大家可以自己下来计算,这里博主就不做具体的计算了

大家看到这有没有发现我们讲的都是普通文件的权限,对于普通文件我们的rwx代表的含义,但是我们的目录文件也是这三个权限,难道也是相同的含义吗,接下来我就开始讲解目录的权限

3.3目录的权限

我们都以拥有者的身份来进行测试,其余的权限都给去掉
在这里插入图片描述
我们一个一个加权限看看是什么效果:

加不加r
在这里插入图片描述

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

黄色框里为什么会出现这样的提示,原因是我没有使用-R递归式的修改权限,B2的权限还是000

加不加x
在这里插入图片描述

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

加不加w
在这里插入图片描述

可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

在共享目录下,三个角色都可以在这个目录下进行写文件,也可以互相看文件,但是如果拥有者写了文件,这个目录其他者具有可写权限,,那么按照这个特性,其他者是不是就可以删除掉拥有者写的文件了

在这里插入图片描述
在这里插入图片描述
这样显然不合理,我们也不能把其他者的可写权限给去掉,那样他不久不能再这个目录下创建文件了,我们必须想办法保证他可以查看拥有者的文件,自己写可以再当前目录下创建文件,并且不能删除拥有者写的文件,这时候就引入我们的粘滞位,我们把共享目录的其他者权限加上粘滞位就可以了,看操作:
在这里插入图片描述

我们看到最后一位由x变成t,具有特殊含义,我们再来执行最初的操作,看看其他者能不能删除拥有者写的文件
在这里插入图片描述
大家应该看到了删除不了

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

一、超级管理员删除
二、该目录的拥有者删除
三、该文件的拥有者删除

这个只是还是非常关键的。

关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目录, 即使目录仍然有-r 读权限(这
个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档

四、总结

Linux当中的权限再管理开发中非常的有用,对文件的安全性进行了保障,所以大家一定要学好这个章节,里面的细节很多,有的只有再平时的使用中才能体会出来。希望大家下来多尝试尝试。我们今天的内容就讲到这里了,我们下篇再见

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

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

相关文章

【C++】入门必备小知识

C入门 1. 域2. 命名空间2.1命名空间的定义2.2 命名空间的使用 3. C输入和输出4. 缺省参数5. 函数重载6. 引用7. auto8. 范围for9.nullptr空指针10.内联函数 1. 域 域就是作用域,同一个域不可以用同名的变量,不同域可以用同名变量,遵循局部优…

案例11:Java超市管理系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

5年时间里,自动化测试于我带来的意义,希望你也能早点知道

摘要:在我有限的软件测试经历里,曾有一段专职的自动化测试经历。 接触自动化 那时第一次上手自动化测试,团队里用的是Python,接口自动化测试的框架是requestsExcelJenkins,APP自动化测试的框架是Appium。 整个公司当…

寻找差值结构的最优顺序

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由6张二值化的图片组成,让A中有6个1 差值结构的每行只能是二进制的3,6,5..3列每列1的数量为1,2,3.B中全是0,排列组合…

“记录新时代 奋进新征程”省市主流媒体共赴省交通集团在建项目采风

近日,浙江省省市13家主流媒体集中走进杭绍甬高速杭绍段绍兴侧路面施工现场、杭金衢高速联络线PPP项目中村大桥及杨家山隧道等施工现场,近距离感受在建工程的标准化施工、数字化赋能以及产业工人队伍打造。 标准化、数字化齐头并进,保障路面施…

脂溶性荧光染料Cy7标记羧酸Cy7-COOH/Carboxylic acids星戈瑞

CY7-COOH是一种含有羧基的化合物,它的分子式为C37H45ClN2O2,分子量519.12。其化学结构中包含有一个吲哚菁骨架,以及一个羧基(COOH)官能团。它的分子式为C37H45ClN2O2,分子量519.12。CY7-COOH是一种近红外荧…

热烈祝贺百华鞋业通过山东省专精特新企业认定!

近日,山东省工业和信息化厅公布了山东省2023年度专精特新中小企业名单,百华鞋业荣誉上榜! 专精特新中小企业是指具有“专业化、精细化、特色化、新颖化”特征的中小企业,多专注于产业链上某个环节,主营业务聚焦&#…

Three.js--》实现3d小岛模型搭建

目录 项目搭建 初始化three.js基础代码 设置环境背景 设置水面样式 添加天空小岛 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还…

AR和VR技术的进展和应用:如何为移动应用开发添加更多趣味和体验?

章节一:引言 作为一名移动应用开发者,我一直致力于为用户提供创新和令人兴奋的体验。随着技术的不断发展,AR和VR技术成为了实现这一目标的有力工具。无论是增强现实还是虚拟现实,它们都能够将虚拟世界与现实世界相结合&#xff0…

可移动磁盘“未格式化”提示?教程帮你重获数据!

可移动磁盘在使用的过程中会出现各种奇怪的错误,比如小编今天碰到的一个,打开分区提示未格式化!可移动磁盘“未格式化”提示?教程帮你重获数据! 可移动磁盘“未格式化”提示?教程帮你重获数据! …

【新星计划·2023】常用的5种VLAN的划分方式,你知道几种?

在说VLAN划分方式之前,先来说一说什么是VLAN?为什么需要划分VLAN? 一、什么是VLAN VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLA…

我还是劝你别去外包,干了4年,废了.....

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

AVUE样式、刷新、字典、清空搜索条件等操作

1、操作栏、表格样式的控制 2、下拉框字典的设置 3、日期格式的设置 const dateFormat function(row, value) { if (!value) return ; let format YYYY-mm-dd; let date new Date(value); const dataItem { Y: date.getFullYear().toString(), m: (date.ge…

使用midjourney搞出一套三国人物画像!

当下已进入如火如荼的全民AI时代,最近体验了下midjourney,使用它的以图生图功能生成出来一套三国人物画像,和大家分享下使用心得。 使用midjourney的准备工作 下载工具 使用midjourney生产图片依赖的工具和流程,大致如下&#x…

Parasoft和TASKING联手提供卓越的汽车软件开发和自动化测试

​​Parasoft与TASKING宣布建立合作 2023年4月26日,全球嵌入式软件测试解决方案领导者Parasoft宣布与汽车嵌入式软件开发工具行业领导者TASKING建立合作伙伴关系。Parasoft和TASKING的合作为汽车行业提供了一套完整的软件全生命周期解决方案,通过CI/CD工…

Shell基础学习---2、运算符、条件判断、流程控制

1 、运算符 1、基本语法 “$((运算式))”或‘“$[运算式]” 2、案例实操 2 、条件判断 1、基本语法 (1)test condition (2)[ condition ] (注意condition前后要有空格) 注意:条件非空即为tr…

批量域名综合信息查询-域名批量注册查询软件

域名综合信息查询 域名是一个网站的重要组成部分,它直接影响着网站的流量和排名。对于网站管理者来说,了解域名的综合信息是非常重要的。为了便于管理者查询和了解域名的综合信息,147SEO提供了免费的域名综合信息查询服务。下面,…

案例9:Java公益物资分配系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

k8s系列-eureka部署集群

1.基本信息 2.容器信息 容器镜像名称: xxxx:30002/dmp/eureka:2022.10.08.14.39.17 环境变量 参数名称 参数值 eureka.instance.hostname ${HOSTNAME}.dmp-eureka-cloud eureka.instance.prefer-ip-address false eureka.client.service-url.defaultZone http://dmp-eureka…

CLLC谐振变换器的基波分析

CLLC谐振变换器_基波分析 目录 CLLC谐振变换器_基波分析 目录电路图FHA分析基于FHA的电路增益特性分析 电路图 FHA分析 输入电压FHA分析 谐振输入假设为理想方波 V i ( t ) 4 V i n π ∑ n 1 , 3 , 5... ∞ 1 n s i n ( 2 π n f s t ) V_{i}(t)\frac{4Vin}{\pi}\sum_…