Linux:shell命令运行原理和权限的概念

文章目录

  • shell和kernel
  • shell的概念和原理
  • Linux的权限
  • 文件的权限
  • 文件的类型
  • 文件的权限管理
  • 权限的实战应用

shell和kernel

从狭义上来讲,Linux是一个操作系统,我们叫它叫kernel,意思是核心,核心的意思顾名思义,就是最关键的部分,而作为普通用户实际上是不可以使用kernel的,会借助一个外壳,这个外壳就是shell,简单来说,shell就是一层保护在kernel外面的保护层,一层外壳,那么为什么呢?为什么不能命令kernel?为什么要在外面加一层shell?这就需要更加深入理解shell了

shell的概念和原理

从技术角度来讲,shell其实就是一个翻译官,它负责把用户输入的指令输给核心,让核心进行处理,再把kernel处理的结果传递给用户,是一个中间人的作用

其实,Windows中也有类似的存在,这个东西叫做GUI:GUI是一个图形化接口,它也是起到了沟通用户和操作系统的作用,假设现在要访问一个文件夹,我们的操作通常是点击一下这个文件夹,而GUI就负责把这个命令传递给操作系统,操作系统接收到这个命令后就再传递回用户,告诉用户成功进入了

而shell对Linux来说就和这个一样,假如用户说我要

cat test.txt

那么这个shell外壳就把这个命令传递给kernel,kernel就做出回应,shell外壳再传给用户

在这里插入图片描述
上面所示的就是shell的作用实例

补充:
在实际应用中,shell也并非直接参与,而是创建一个一个的子进程,让子进程执行命令,而作为父进程的shell则继续进行命令行接受,防止有意外情况的发生导致外壳shell无法正常工作,后续在进程的篇章中会有更多解释

Linux的权限

Linux的权限是Linux的一大特色,理解好Linux的权限对于后面的学习是有很大意义的

首先,从大的方向上划分,Linux的用户主要有两种,root和普通用户
超级用户:可以做任何事情,只要有指令实现都可以
普通用户:局限性比较强,完成一些基本的操作

这里需要补充两个命令:
命令1:su 用户名
功能:用来切换用户

在这里插入图片描述
命令2:sudo root
功能:临时用root账号执行命令,sudo可以短时间内提升权力,但前提是要在sudo的名单内,否则也无法达成目的:

在这里插入图片描述
注意这里有一个细节,只需要用到free的密码,也就是说,不需要用root的密码也可以做到权限提升,那么这是为什么?
原因在于这样可以防止root账号的密码被滥用,实际上也是一种安全,root账号可以操控是否能使一个用户拥有root权力与否

文件的权限

Linux的权限往往是伴生于文件的,对于文件来说,权限是极其重要的,下面来进行权限和文件的理解

首先,对于一份文件,常常有下面的两类属性:
第一个是人属性,即该文件是谁写的,谁有权力看,在Linux中把人的属性分为三种,分别为拥有者,所属者和其他人
第二个是事物属性,即这份文件可以被什么人用什么方式访问,在Linux中把文件的属性分为三种,分别为可读,可写和可执行,分别对应的是rwx

文件的类型

在我们Windows中的使用中,假设我们要写一份C语言代码,我们会命名为test.c,如果要写一份文本文件,我们会写test.txt,这是因为在Windows中,一份文件的类型来源于它的后缀,后缀是什么样子的决定了这是一个什么样的文件,但在Linux中却并不是这样

在Linux中,文件的类型并不取决于后缀,而是取决于目录中的第一个字符,假设这里我们创建了一个文件test

在这里插入图片描述

而这里开头的 - 其实就代表了这到底是什么样子的文件

在Linux中有下面这些文件类型:

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

需要注意的是,Linux中的后缀的意义是给人看的,但如果是gcc编译器,也会对后缀做出一定的区分,但整体看Linux中并不太关心文件的后缀是什么形式

文件的权限管理

因此,这次就能观察它的前缀都代表什么意义

在这里插入图片描述
下面我们来一一看这些内容到底是什么意思

在这里插入图片描述
这里需要注意的是,第二列到第十列都属于的是拥有者,所属组,其他人的权限,而这些权限并不会因为没有就不显示,而是会以- 的形式存在,因此会出现rw- — r–等形式的存在

下面有一些对上图所示的知识的补充:

1. 用户和角色的联系?
用户和角色并没有太多的联系,一个普通用户在一个文件中是所属用户,也可能是所属用户组,root用户也可以既不是所属用户,也不是所属用户组

2. 所属组是什么?
所属组在开发项目的过程中有它的作用,一个组可以只有一个人,也可以有很多人,这些人都是该项目组的成员

3. 所属组有什么用?
简单来说,所属组就是用来给所属用户和其他人之间创建一个有部分权限的人,假设我有一份工程,我正在完善它的过程中,而此时有其他人要来看我的工作进度,我想给他开放阅读的权限,但并不想给其他人看,因此就可以让他进入我的所属组,并给他阅读的权限,这样就既达到了让他阅读的权限,又能让别人无法看到,我作为文件的所属者可以随时进行权力的增加,修改和删除,这也是Linux系统提高工作效率的表现之一

更改权限的指令

指令:chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

权限的实战应用

在知道了权限的作用后,下面就进行对权限的更改方式和具体实践结果

首先,要创建这样的场景:

在这里插入图片描述
那么下面那么此时,test对于free的文件夹来说就是other的身份,现在创建一个test文件
在这里插入图片描述
根据上面所学的知道这里test文件对于拥有者来说有可读和可写的权力,对于所属组来说有可读和可写的权力,对于其他人来说有可读的权力,那么我们添加一下对于其他人访问该文件有写入的权限

chmod o+w test

于是在test用户下,他也可以用echo进行修改test中的内容

echo "hello" >> test

在这里插入图片描述
此时我不想让test用户再看到和写入我的文档了,我就可以对文档的other用户进行权限删减

在这里插入图片描述
此时如果test用户再继续访问,就会提示权限不足

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序——同一控件的点击与长按事件共存的解决方案

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

GRACE数据反演的新理解

一、问题提出 “重力恢复与气候实验”(GRACE)为监测地球系统内全球大尺度质量变化提供了一种新途径。自2002年3月发射以来,GRACE一直在生成时间变化的重力场模型,这些模型可用于量化与全球气候变化相关的地球系统不同组成部分内的…

C++day7(异常处理机制、Lambda表达式、类型转换、STL标准库模板、迭代器、list)

#include <iostream>using namespace std; template <typename T> class vector { private:T* first;T* last;T* end; public:vector():first(new T),last(first),end(first){cout<<"无参构造"<<endl;}//无参构造vector(T* f):first(f),last…

24考研数据结构-线性表4

目录 2.4.4单链表的查找操作&#xff08;默认带头节点&#xff0c;不带头节点后续更新&#xff09;2.4.4.1 按位查找操作2.4.4.2 按值查找操作2.4.4.3 求单链表的长度&#xff08;带和不带头节点都写了&#xff09;2.4.4.4 知识回顾与重要考点 2.4.5 单链表的创建操作2.4.5.1 头…

STL中的神秘“指针”:迭代器

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;C学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大…

kaggle新赛:Bengali.AI 语音识别大赛赛题解析

赛题名称&#xff1a;Bengali.AI Speech Recognition 赛题链接&#xff1a;https://www.kaggle.com/competitions/bengaliai-speech 赛题背景 竞赛主办方 Bengali.AI 致力于加速孟加拉语&#xff08;当地称为孟加拉语&#xff09;的语言技术研究。Bengali.AI 通过社区驱动的…

uni-app如何生成正式的APK

第一步&#xff1a; 进入dcloud官网https://dcloud.io/&#xff0c;点击开发者后台进入登录注册页面 第二步&#xff1a;登录之后跳到项目列表&#xff0c;选择自己想要打包的项目 点击进去如果没有生成证书&#xff0c;点击生成证书&#xff0c;如果显示证书已生成就不用管了…

【Windows】WDS中如何跳过语言选择以及身份验证

WDS&#xff08;Windows Deployment Services&#xff09;是微软的一项网络服务&#xff0c;用于快速和方便地部署Windows操作系统到多台计算机上。它提供了一种自动化的方式来安装、配置和管理操作系统映像&#xff0c;使企业能够快速部署和更新大量的计算机系统。网上有很多W…

【Kaggle】Kaggle数据集如何使用命令语句下载?

一、Kaggle数据集如何下载 1.1 问题的起因 最近看到了 Google 组织的 Kaggle 比赛&#xff0c;想自己试一下&#xff0c;但是数据集太大了&#xff0c;将近有370G的数据。直接下载的话&#xff0c;网速太慢&#xff0c;可能要下载3-4天&#xff0c;所以萌生了用命令语句下载的…

详解rocketMq通信模块升级构想

本文从开发者的角度深入解析了基于netty的通信模块, 并通过简易扩展实现微服务化通信工具雏形, 适合于想要了解netty通信框架的使用案例, 想了解中间件通信模块设计, 以及微服务通信底层架构的同学。希望此文能给大家带来通信模块架构灵感。 概述 网络通信是很常见的需求&#…

并发编程可能出现的核心问题

2.1非可见性 如果主内存里有个静态变量flagfalse&#xff0c;然后线程A和B在工作内存都需要操作flag&#xff0c;线程A是while(!false){}&#xff0c;而线程B将flag改为true&#xff0c;但是由于线程A和线程B之间工作内存互相不可见&#xff0c;线程A就会陷入死循环。 2.2指令…

【C++11】——类的新功能

目录 1. 默认成员函数 2. 类成员变量初始化 3. 强制生成默认函数的关键字default 4. 禁止生成默认函数的关键字delect 5. 继承和多态的final与override关键字 6. 测试案例 1. 默认成员函数 原来C类中&#xff08;C11之前&#xff09;&#xff0c;有6个默认成员函数&…

GAMES101 笔记 Lecture12 Geometry3

目录 Mesh Operations: Geometry ProcessingMesh Subdivision (曲面细分)Mesh Simplification(曲面简化)Mesh Regularization(曲面正则化) Subdivision(细分)Loop Subdivision(Loop细分)如何来调整顶点位置呢&#xff1f;Loop Subdivision Result (Loop细分的结果) Catmull-Cla…

大数据-Spark批处理实用广播Broadcast构建一个全局缓存Cache

1、broadcast广播 在Spark中&#xff0c;broadcast是一种优化技术&#xff0c;它可以将一个只读变量缓存到每个节点上&#xff0c;以便在执行任务时使用。这样可以避免在每个任务中重复传输数据。 2、构建缓存 import org.apache.spark.sql.SparkSession import org.apache.s…

【【51单片机11.0592晶振红外遥控】】

51单片机11.0592晶振红外遥控 红外遥控&#xff0c;51单片机完结 这是初步实现的架构 怎么实现内部的详细逻辑 我们用状态机的方法 0状态时一个空闲状态 当它接收到下降沿开始计时然后转为1状态 1状态下 寻找start 或者repeat的信号 再来下降沿读出定时器的值 如果是start 那…

Python爬虫基础知识点有哪些

目录 Python爬虫基础知识点 Requests库 Beautiful Soup库 正则表达式 数据存储 防止被反爬虫策略 爬虫调度和任务管理 认识robots.txt文件 反爬虫法律与道德 示例代码 Requests库 Beautiful Soup库 正则表达式 数据存储 防止被反爬虫策略 结语 网络世界中信息的…

如图,△ABC中,AD是角平分线,E、F分别为AC、AB上的点,且∠AED+∠AFD=180°.试问:DE与DF有何关系,并说明理由.

Question&#xff1a; 如图&#xff0c;△ABC中&#xff0c;AD是角平分线&#xff0c;E、F分别为AC、AB上的点&#xff0c;且∠AED∠AFD180&#xff0e;试问&#xff1a;DE与DF有何关系&#xff0c;并说明理由&#xff0e; Answer&#xff1a; 分析&#xff1a;过D作DM⊥AB于…

为 Google Play 即将推出基于区块链的内容政策做好准备

作者 / Joseph Mills, Group Product Manager, Google Play 作为一个平台&#xff0c;Google Play 一直致力于帮助开发者将创新理念变为现实。Google Play 上托管了许多和区块链相关的应用&#xff0c;我们深知合作伙伴们希望扩展这些应用&#xff0c;并利用 NFT 等代币化数字资…

两数相加 II——力扣445

题目描述 法一 栈 本题旨在从后往前加&#xff0c;为了逆序处理所有数位&#xff0c;利用栈&#xff0c;把数字压入栈中&#xff0c;再依次取出相加&#xff0c;注意进位&#xff01;进位是/10&#xff0c;另外需要注意栈的常用函数&#xff0c;push()、pop()、top()&#xff0…
最新文章