Shell原理简介与Linux中的权限问题

一、Shell命令及运行原理

1.1通常说的计算机体系结构指的是什么

通常意义上的计算机体系结构指的是芯片:

如锐龙amd,英特尔酷睿intel core

他们分为

x86:32位

x86_64:64位

两种

1.2广义上的Linux系统分为哪些部分,shell的简单定义是什么

广义上的Linux系统=Linux内核+Linux外壳

为什么需要Linux外壳呢?

 原因是用户无法直接访问Linux内核,也不擅长访问

因此可以引申出shell的简单定义:命令行解释器

1.3shell的运行原理简介

由1.2中shell简单定义不难看出,shell的正常运行十分关键,它决定了用户能否正常使用操作系统,为了保证外壳的安全性一般运行过程中,外壳程序会创建子进程,让子进程代替其完成命令行的解释

1.3补:当前使用的外壳程序是bash,与shell是什么关系?

当前使用的Linux系统种,外壳程序在/usr/bin/bash下

bash可以说是一种具体的shell

就像教师王老师之间的关系

二、Linux中的权限问题

2.1切换用户指令su

要进行用户切换,指令基本使用规范是:

su+[用户名]

回车

①若初始为普通用户

1>换root:

su -

回车

输密码

2>换别的普通用户

su+[用户名]

回车

输密码

②若初始为root

更换为别的用户:

su+[用户名]

回车

(无需输入密码)

:任何用户切换后,都可以通过热键ctrl+d退回到上一用户

2.2普通用户提权指令sudo

有时会遇到一种情况:仍然使用普通用户的情况下需要利用root专属权限

使用规范:

sudo+[命令]

回车

但要注意:不是任何一个普通用户都可以使用sudo进行提权的,需要在

vim/etc/sudoers

进行配置,而这一目录是属于root的,所以并不会出现未知情况下越权的问题

2.3对于一个文件来说,系统中有三种访问者:

他们分别是:拥有者,所属组,other

如ll展示目录mydir

 观察发现,在这里拥有者与所属组是相同的,其实很多情况下都相同,那么所属组的作用是什么呢?

为了进行更细粒度的权限管理

如两个技术团队使用同一台Linux机器进行编程,而A组成员直接要可以相互查看但不允许B组成员查看,这时所属组就用的上了 

2.3补:3种访问者与普通/root用户都因权限进行划分,它们有什么区别

可以理解为扮演角色与具体扮演的人之间的关系

如:华为员工名为张三,华为员工是身份,对应三种访问者张三是拥有这一身份的人,对用普通/root用户

⭐2.4文件权限属性

2.4.1文件权限的表示方式

红色框中表示的是文件权限,共分9列,每三列为一组,分别表示拥有者,所属组,other三组

r,w,x分别代表读权限,写权限,可执行权限;-代表不具有当前权限

2.4.2更改文件权限属性的方法

①法一:利用访问者种类的代号与rwx代表更改内容

基本规范:

chmod [访问者种类代号]+[增减代号]+[文件名]

回车

访问者种类代号:u代表拥有者(User);g代表所属组(Group);o代表other;a代表

增减代号:+待变新增权限;-代表移除权限

 例如:

chmod u-rwx file    拥有者移除全部权限

chmod g+w,g-rx file    所属组移除读,运行权限,增加写权限

chmod a+rwx file    全部三种访问者增加全部权限

②法二:利用八进制代表设置好的权限情况

基本规范:

chmod+[所需权限对应的八进制数]+[文件名]

回车

依据2.4.1中分析,一共有三种访问者,每种访问者对应的三个权限我们标识为一个三位二进制数

三位二进制取值在0-7,所以我们可以把它化为一个八进制数来表示,例如

希望的权限是:

rw-rw-rw-

对应的三组 三位二进制 是:110 110 110

转换为八进制是:666

此时指令为:

chmod 666 file 

回车

2.4.3权限冲突时的优先级 

假如权限是:

---rw----

拥有者与所属组相同,都是名为normal的普通用户,那么normal下可以进行写入吗?

答案是不可以,因为确定身份的过程只会进行一次,顺序依次为:拥有者,所属组,other

 在使用者为拥有者的情况下,会优先看拥有者的权限

2.4补:是否有可执行权限与文件是否可执行是不等价的

广义上来讲,权限=人+事物的属性在本文环境下,也可以理解为使用的角色+文件权限属性

文件可执行=使用者有可执行权限+文件本身具有可执行的属性

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

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

相关文章

在rtthread中,scons构建时,它是怎么知道是从rtconfig.h找宏定义,而不是从其他头文件找?

在rtthread源码中,每一个bsp芯片板级目录下都有一个 SConstruct scons构建脚本的入口, 在这里把rtthread tools/目录下的所有模块都添加到了系统路径中: 在tools下所有模块中,最重要的是building.py模块,在此脚本里面…

C# Winform 使用委托实现C++中回调函数的功能

C# Winform 使用委托实现C中回调函数的功能 在项目中遇到了使用C#调用C封装的接口,其中C接口有一个回调函数的参数。参考对比后,在C#中是使用委托(delegate)来实现类似的功能。 下面使用一个示例来介绍具体的使用方式: 第一步:…

深度学习之神经网络框架搭建及模型优化

神经网络框架搭建及模型优化 目录 神经网络框架搭建及模型优化1 数据及配置1.1 配置1.2 数据1.3 函数导入1.4 数据函数1.5 数据打包 2 神经网络框架搭建2.1 框架确认2.2 函数搭建2.3 框架上传 3 模型优化3.1 函数理解3.2 训练模型和测试模型代码 4 最终代码测试4.1 SGD优化算法…

2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感

0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右,一次性备考笔试的三个科目 1.实习申请技术准备:微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐(文本书写领域&am…

9 Pydantic复杂数据结构的处理

在构建现代 Web 应用时,我们往往需要处理复杂的输入和输出数据结构。例如,响应数据可能包含嵌套字典、列表、元组,甚至是多个嵌套对象。Pydantic 是一个强大的数据验证和序列化库,可以帮助我们轻松地处理这些复杂的数据结构&#…

链表(LinkedList) 1

上期内容我们讲述了顺序表,知道了顺序表的底层是一段连续的空间进行存储(数组),在插入元素或者删除元素需要将顺序表中的元素整体移动,时间复杂度是O(n),效率比较低。因此,在Java的集合结构中又引入了链表来解决这一问…

torch_bmm验算及代码测试

文章目录 1. torch_bmm2. pytorch源码 1. torch_bmm torch.bmm的作用是基于batch_size的矩阵乘法,torch.bmm的作用是对应batch位置的矩阵相乘,比如, mat1的第1个位置和mat2的第1个位置进行矩阵相乘得到mat3的第1个位置mat1的第2个位置和mat2的第2个位置…

shell+kafka实现服务器健康数据搜集

今天有一个徒弟问我,分发、代理服务器都装有kafka,如何快速收集服务器的健康数据,每10秒就收集一次? 我当时听完之后,楞了一下,然后说出了我的见解:认为最快速的方法无法就是建议shell脚本直接采…

macbook2015升级最新MacOS 白苹果变黑苹果

原帖:https://www.bilibili.com/video/BV13V411c7xz/MAC OS系统发布了最新的Sonoma,超酷的动效锁屏壁纸,多样性的桌面小组件,但是也阉割了很多老款机型的升级权利,所以我们可以逆向操作,依旧把老款MAC设备强…

建筑物损坏程度分割数据集labelme格式2816张5类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2816 标注数量(json文件个数):2816 标注类别数:5 标注类别名称:["minor-damage","destroyed&quo…

ReactNative进阶(五十九):存量 react-native 项目适配 HarmonyOS NEXT

文章目录 一、前言二、ohos_react_native2.1 Fabric2.2 TurboModule2.2.1 ArkTSTurboModule2.2.2 cxxTurboModule: 三、拓展阅读 一、前言 2024年10月22日19:00,华为在深圳举办“原生鸿蒙之夜暨华为全场景新品发布会”,主题为“星河璀璨&…

Golang GORM系列:GORM CRUM操作实战

在数据库管理中,CRUD操作是应用程序的主干,支持数据的创建、检索、更新和删除。强大的Go对象关系映射库GORM通过抽象SQL语句的复杂性,使这些操作变得轻而易举。本文是掌握使用GORM进行CRUD操作的全面指南,提供了在Go应用程序中有效…

【Windows】PowerShell 缓存区大小调节

PowerShell 缓存区大小调节 方式1 打开powershell 窗口属性调节方式2,修改 PowerShell 配置文件 方式1 打开powershell 窗口属性调节 打开 CMD(按 Win R,输入 cmd)。右键标题栏 → 选择 属性(Properties)…

Json-RPC框架项目(一)

目录 1. 项目介绍: 2. 技术选择; 3. 第三方库介绍; 4. 项目功能; 5. 模块功能; 6. 项目实现: 1. 项目介绍: RPC是远程过程调用, 像调用本地接口一样调用远程接口, 进行完成业务处理, 计算任务等, 一个完整的RPC包括: 序列化协议, 通信协议, 连接复用, 服务注册, 服务发…

深度整理总结MySQL——MySQL加锁工作原理

MySQL加锁工作原理 前言前置知识- 锁为什么加在索引上锁的粒度优化提高并发性避免全表扫描优化死锁处理解决幻读问题 什么SQL语句会加行级锁MySQL是如何加行级锁场景模拟代码唯一索引等值查询退化为记录锁为什么会退化为记录锁分析加了什么锁为什么会退化为间隙锁为什么我可以插…

Deepseek系列从v3到R易背面经版

deepseek v3 base要点 MTP : Multi-Token Prediction 训练时: 1. 把前一个block中input tokens经过embedding layer和transformer block的输出,进入output head之前的内容记为h,与下一个block的input tokens经过embedding layer输出的内容都…

大模型融入推荐系统

结合项目实际给用户推荐,比如是商家项目,用户问了几个关于商品的信息,大模型就可以根据根据用户画像,给用户推荐商品。 我们现在做的是针对于用户学习的推荐,首先我们要对我们的数据进行处理,提取出我们数…

MariaDB MaxScale实现mysql8主从同步读写分离

一、MaxScale基本介绍 MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 二、MaxScale实验环境 中间件192.168.121.51MaxScale…

【JVM详解五】JVM性能调优

示例: 配置JVM参数运行 #前台运行 java -XX:MetaspaceSize-128m -XX:MaxMetaspaceSize-128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8 - XX:UseConcMarkSweepGC -jar /jar包路径 #后台运行 nohup java -XX:MetaspaceSize-128m -XX:MaxMetaspaceS…

畅聊deepseek-r1,SiliconFlow 硅基流动注册+使用

文章目录 SiliconFlow 硅基流动注册使用注册创建API密钥使用网页端使用代码调用api调用支持的模型 SiliconFlow 硅基流动注册使用 注册 硅基流动官网 https://cloud.siliconflow.cn/i/XcgtUixn 注册流程 切换中文 ​ 邀请码: XcgtUixn 创建API密钥 账户管理 --&g…