【Linux】Shell 与权限:Linux 系统的双重保障

news2024/9/26 5:22:15

  欢迎来到 CILMY23 的博客

🏆本篇主题为:Shell 与权限:Linux 系统的双重保障

🏆个人主页:CILMY23-CSDN博客

🏆系列专栏:Python | C++ | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营

🏆感谢观看,支持的可以给个一键三连,点赞收藏+评论。如果你觉得有帮助,还可以点点关注


前言: 

Hello,大家好,这里是 CILMY23 的频道,上期我们接触了压缩,搜索等等指令,也是结束了指令篇的学习,今天我们就来深入探究一下shell的运行原理以及Linux中的权限。

个人分享:每个人的内心都是一片海洋,每一路人都如此。每个人都是思想、见解和情感的宇宙。


目录

shell运行原理

外壳程序是什么?

 为什么有外壳程序?

shell 外壳一般做什么? 

权限的概念

 什么是权限?

权限的本质 

Linux中的用户 

 如何互相身份互换?

sudo


shell运行原理

我们之前学到的大部分命令,其实本质就是在磁盘当中/系统当中,特定目录下的一个可执行文件。说白了,我们平时学到的,pwd,或者top,或者mkdir,或者是我们用过的touch,又或者是whoami……我们所得出的结论就是:大部分指令就是文件。删了就无法使用了

在Linux中,绿色表示是可执行文件 

但是我们发现,每次在输入命令前,总是弹出这个东西 

这是个啥?

其实这个东西叫做命令行提示符,它其实是字符串,它是由对应的[],用户名,主机名,路径构成的一个字符串。它是printf打出来的。 

我们在屏幕中输入ls 相当于 =>  输入一条指令, 相当于打入ls字符串,被对应的程序读取了,在系统中,存在这样一个文件,会打印出命令提示符。然后从我们的命令行中获取指令。 

而操作系统实际上是分为广义上的操作系统和狭义上的操作系统,广义上的操作系统包括内核和命令行,甚至包括平时用的指令,狭义上的操作系统只包括内核,内核----顾名思义,就是比较重要的东西,很多东西都是它管理的,比如键盘输入,显示器输出等等

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“,而用户执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳程序。

用户没有办法直接访问内核,而为了让我们更好访问,在任何操作系统上,都会包裹一层软件层,也是shell层。外壳层是GUI(图形化界面)和命令行。

 而在最外面的一层,通常是用户层。

当你要执行某种指令的时候,你通常是和外壳程序交谈, 然后外壳程序再转交给内核,如果内核无法执行,那就会报错,通过外壳程序告诉你,执行失败。

外壳程序是什么?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  1. 将使用者的命令翻译给核心(kernel)处理。
  2. 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。  

 为什么有外壳程序?

这个原因有很多,但是最主要的还是以下两点: 

  1.  用户不善于和内核打交道
  2.  shell 外壳的存在,可以对请求进行合法性检查,变相的保护OS

shell 外壳一般做什么? 

在Linux中,一般会通过bash创建子进程,( bash 是具体的外壳程序,shell 是统称)这个子进程会帮助用户进行命令行解释,bash 只要进行等待用户输入即可。

在Linux中,如果你是管理员账户,命令提示符的最后一个通常是 "#",如果你是普通用户,这里则会显示"$"。

权限的概念

 什么是权限?

其实不妨从生活中想想,哪些事情是有权限的事情,哪些事情是没权限的事情?

最典型的,莫过于各大视频平台的视频vip,无论是爱奇艺,优酷,腾讯视频。有vip就有权限看对应的资源,没有vip就没法看对应的资源。

除此之外,还有门禁,进入宿舍的时候,要刷脸啊,不是这栋楼的就没有权限进入。

所以什么是权限呢?

权限就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源

 这个世界上大家都能做的工作,可能就不会有权限的概念。我们从来没有听过说,你不能呼吸,你没有呼吸的权力,权限一定是一部分人有,一部分人没有,所以才会产生权限这种概念。

权限决定的是有无,能还是不能的问题

权限的本质 

要想探究清楚,权限的本质,还得从例子上入手 

例子:我能看vip,你看不了,所以权限一定和人有关。

例子:我是爱奇艺的svip,但是为什么不能让我刷题?

          我是leetcode会员,但是为什么不让我看视频?

说明,权限的本质不仅和有关,还和事物的属性有关。

我们还可以通过下述例子还探讨本质: 

例子:你叫张三,你能看爱奇艺vip会员视频,是因为你叫张三吗?还是因为你是会员身份?你能进到A公司,是因为你叫张三,还是因为你是A公司员工?你能进学校,是因为你叫张三,还是因为你是该学校的学生? 

 

实际上,这个人是一个角色。权限是用来限定某种角色的,不是限制某个人的

Linux中的用户 

Linux下有两种用户:超级用户(root)、普通用户。

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

我们在前几篇的学习中,最经常用的还是 root 用户 。

 

root 是超级管理员,它的特点是不受权限约束

用户分为root账户和普通用户,root账户是不受权限约束的,也就是说,换句话说,它几乎对任何事情都有权限,下一篇我们会证明它,以及我们还会证明有权限和没权限什么概念。以及它在Linux中的表现是什么?甚至还要再去理解,为什么Linux要设计权限?

 如何互相身份互换?

 这里为了演示,我特地添加了一个用户

adduser 用户名

这是我新建的用户 

 

💫💫指令:su

💫💫功能:su转换成root 账户。ctrl + d 转换成普通用户。 

如果你是直接以普通用户登录,那么普通用户变成root,这里要输root的密码。在登Linux的时候,root账户要有密码,普通账户也要输密码。

建议:

设置一样的,用久了,不知道谁是谁的密码了。

我们可以在/home下查看,我们的用户。 

你想变成普通用户,直接 su + 用户名即可。 

💫💫指令:su -

💫💫功能:su 和 su - 都可以进行root的登陆,他们两个之间是有区别的,前面的su 是直接转变身份为root,后面一个则是变成root身份

我们可以通过命令提示符,看出来su - 的最直接标识还是 "$"。 

权限是限制普通人的,而root 有很多权限,是制定规则的人。、

sudo

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

这时候就可以使用sudo来进行了,在前面我使用虚拟机的时候经常用到这一条指令。

接下来我们看,第一个root 是文件创建者,也就是谁创建的。输入的是谁的密码?

我们如果想创建文件,就必须获得权限,那这里我们使用sudo来获取权限,密码是输自己的密码。 

 5-10分钟内,不会过期,不同的系统有不同的时间限制。我们以超级管理员的身份执行了一条命令,我们把它称为指令提权,也就是把指令的权限往上提一提。

1.我要用root权限,为什么输入的是我的密码?我是普通用户,为什么输的是我的密码? 

:一般普通用户是没有权限执行sudo的,只不过有的系统配置过了,默认会报错

首先默认云服务器是不行的,虚拟机是可以的,默认不让你sudo,那有的为什么能执行呢?根本原因就在于我们系统里会存在一种类似于白名单这样的功能,白名单是什么意思呢?在现实生活中呢,如果你是一名保安,你在处理任何人能不能进学校这件事情上,那么所有的保安都有三件事情要处理,

第一种,他必须得在自己的小本本上记录下来,就是不能查的人,比如校长,领导,我保安随便去把人家拦住。这些人一看我就不该拦他。这就叫做我们的白名单,也就是这批人我们是默认相信他的

作为一个合格的保安,我除了做这个事情,我还要选择哪些人绝对不能进来,这些人一看就是不好的社会青年,这种人我一看到就立马把他拦住了,那么这叫做黑名单

所以我们在作为保安来讲,必要的一个基本工作素养,就是黑名单和白名单,白名单就是这人我绝对相信他,可以让他过,黑名单就是不想让他过,直接拦住他。

当然,大部分情况下,保安不知道是相信你还是不相信你,所以会询问你,所以为什么在执行我们的sudo,允许我输入我的密码呢?

那么很简单,配置过用户,允许我直接执行。Linux是支持这种简单的白名单的策略的。

2.如何配置?

主要是因为要改配置文件。前期有很多文本编辑器权限不熟,容易导致系统挂掉。所以我们就暂时不做。


结尾:

本期就讲解到这,下一期我们会继续本篇内容,讲解Linux中的另一种用户,以及组的概念和Linux的文件权限。


 🛎️感谢各位同伴的支持,本期权限专题就讲解到这啦,下期我们将讲解文件中的权限,如果你觉得写的不错的话,可以给个一键三连,点赞,收藏+评论,可以的话还希望点点关注,若有不足,欢迎各位在评论区讨论。       

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

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

相关文章

三、搭建网站服务器超详细步骤——FinalShell下载安装使用流程(免费国产的SSH工具)+宝塔安装方法(分享两种安装宝塔的方法)

前言 本篇博客是搭建网站服务器模块下的第3部分 FinalShell下载安装使用流程 在分享这篇博客之前,首先讲一下,FinalShell软件是干什么用的,用大白话进行说明一下:这个软件是一款远程控制和管理服务器的软件,通过S…

C++字符串与整数的相互转换

文章目录 前言字符串转整数stoiisstringstreamatoi 字符转整数to_stringstringstreamsprintf ASCII码转换 前言 题目大致为: 给一组数据,去掉里面的2,然后再返回结果 例如: 输入:{20, 66, 521, 2024} 输出&#xff1…

手机如何切换网络IP地址:‌方法详解与操作指南‌

在当今的数字化时代,‌网络IP地址作为设备在网络中的唯一标识,‌扮演着至关重要的角色。‌对于手机用户而言,‌了解如何切换网络IP地址不仅有助于提升网络体验,‌还能在一定程度上保护个人隐私。‌本文将详细介绍手机切换网络IP地…

仿论坛项目--Kafka,构建TB级异步消息系统

阻塞队列 • BlockingQueue 解决线程通信的问题。阻塞方法:put、take。 • 生产者消费者模式生产者:产生数据的线程。消费者:使用数据的线程。 • 实现类ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue、SynchronousQueue、D…

火语言RPA流程组件介绍--浏览器设置

🚩【组件功能】:浏览器设置,实例化对象,并执行是否显示图片/是否显示浏览器窗体等操作 配置预览 配置说明 操作浏览器类型 内置浏览器 外部浏览器 浏览器位置 本机安装的chrome浏览器可执行文件的路径(选择外部浏览器时必填)…

9月出海风向标:越南国庆节、巴西独立日、游戏外部开发大会、东京电玩节来袭!

9月如期而至,各位出海人准备好迎接新一轮增长机会了吗?以下是9月全球热门节日、行业大会活动信息: 01. 越南国庆节 越南国庆日,也称为“Quốc khnh nước CHXHCN Việt Nam”,是每年的9月2日,这一天标志着…

MySQL Workbench 的入门指南

前言 MySQL Workbench 是一个官方的图形化工具,用于开发、管理和设计 MySQL 数据库服务器。它提供了丰富的功能,可以帮助数据库管理员、开发者以及DBA们高效地工作。下面是一个MySQL Workbench的入门指南,介绍如何安装和使用它。 安装 MyS…

FP7209:非同步升压恒流LED区动IC

前言:LED驱动芯片是什么? LED驱动器(LED Driver),是指驱动LED发光或LED模块组件正常工作的电源调整电子器件。由于LED PN结的导通特性决定,它能适应的电源电压和电流变动范围十分狭窄,稍许偏离…

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动:平台设有专门的直播间,允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流:异性用户可以发起语音或视频通话,以增进了解和交流。群组聊天:用户能够创建群聊,邀请自己关注…

用亚马逊云科技Graviton高性能/低耗能处理器构建AI向量数据库(下篇)

简介: 今天小李哥将介绍亚马逊推出的云平台4代高性能计算处理器Gravition,并利用该处理器构建生成式AI向量数据库。利用向量数据库,我们可以开发和构建多样化的生成式AI应用,如RAG知识库,特定领域知识的聊天机器人等。…

Unity中使用四元数限制旋转

前言 在处理旋转相关的内容的时候,如果使用unity提供的欧拉角描述旋转,会出现一下两种问题 同一旋转的表示不唯一万向节死锁 绕轴90旋转与绕轴90+360旋转的表现是一致的 当某个特定轴达到某个特殊值时,绕一个轴旋转可能会覆盖另一…

Python 学习笔记(一)

input 函数 input():将输入数据的类型都转化为字符串 range 函数 自定义函数 函数与方法 列表 字符串 切片 集合 字典 函数的参数 匿名函数 文件操作 异常处理

JavaScript 21个常用数组使用方法

前言 在 JavaScript 中,数组是一种特殊类型的对象,用于存储和组织多个值。数组使您可以将值分组到单个变量名下,从而方便管理和操作数据集合。以下是更详细的解释: 在 JavaScript 中,一对方括号 [] 表示数组。数组中…

Kafka【第一篇】Kafka集群搭建

Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位我想对用户的搜索关键词进行统计&#xff…

Nexpose 6.6.268 发布下载,新增功能概览

Nexpose 6.6.268 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 04, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…

JVM系列(五) -内存相关的调优参数

一、摘要 在上篇文章中,我们详细介绍了 JVM 的内存布局。 今天这篇文章,并结合之前的介绍知识,一起了解一下 JVM 内存相关的调优参数。 二、内存设置相关的命令 所有内存溢出的问题,除了代码可能存在问题以外,更直观的问题是内存空间不足,如何通过参数来控制各区域的…

【数据结构】排序算法篇二

【数据结构】排序算法篇二 1. 快速排序(hoare版本)(1)基本思想:(2)动态图解:(3)代码实现:(4)特性总结: 2. 快速…

《Few-shot Object Counting with Similarity-Aware Feature Enhancement》CVPR2023

摘要 论文提出了一种新颖的学习模块,该模块包含一个相似性比较模块(Similarity Comparison Module, SCM)和一个特征增强模块(Feature Enhancement Module, FEM)。通过比较支持图像和查询图像的投影特征,生…

运维变革:迎接数字化转型的挑战

在数字化转型的浪潮中,我们的技术架构和实现方式正经历着前所未有的变革。这一变革不仅重塑了业务形态,也对运维体系和运维组织模式产生了深远影响。近期,在与众多客户探讨“十四五”规划时,运维变革成为一个无法回避的重要话题。…