Linux权限+Shell和Linux的关系

文章目录

  • 1.Shell存在的意义及作用
    • 1.1对于Shell的认知过程
    • 1.2Shell/图形化界面外壳程序的意义
  • 2.对Linux权限的理解
    • 2.1对Linux权限的认知过程
    • 2.2对于Linux下ll指令显示的文件属性的认识

1.Shell存在的意义及作用

1.1对于Shell的认知过程

Linux是什么?

  1. Linux是一套免费使用和自由传播的类Unix操作系统,它是一个基于POSIX的多用户、多任务、支持多线程多CPU的操作系统。Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途。Linux的设计理念是简单、高效、稳定和安全。Linux系统可以运行在各种硬件平台上,包括个人电脑、服务器、移动设备等

  2. Linux是一个操作系统,称之为“核心kernel“
    一般用户不能直接使用kernel 而是通过kernel的**“外壳”程序**---- shell,来与kernel沟通。windows是图形化界面

如何理解?

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

Shell主要包含:

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

windows系统呢?

对比windows GUI,操作windows 不是直接操作windows内核,而是通过图形接口,点击,完成操作

比如进入D盘的操作,双击D盘盘符

shell对于Linux的作用

shell 对于Linux,有相同的作用,主要是对指令进行解析,解析指令给Linux内核。再通过内核运行出结果,通过shell解析给用户。

为什么不能直接使用kernel?

  1. 操作成本特别高
  2. 人会犯错,会带来不安全因素

bash是什么?

在这里插入图片描述

在这里插入图片描述

1.2Shell/图形化界面外壳程序的意义

  1. 用户和操作系统交互的中间软件层
  2. 一定程度起到保护操作系统的作用
    [对于无理指令可以拒绝执行并报错 对于本来能执行的指令也可以关闭权限不再执行]
  3. 外壳程序接收用户请求后 交给子进程执行
    在这里插入图片描述

2.对Linux权限的理解

2.1对Linux权限的认知过程

对于Linux用户的认识和理解

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:拥有最高权限 不受权限约束 可以在linux系统下做任何事情,不受限制
普通用户:可以有多个 受权限约束 在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
在这里插入图片描述

用户之间的切换

命令:su [用户名]
功能:切换用户。[切换权限]

  1. 要从root用户切换到普通用户user,则使用 su user

  2. 要从普通用户user切换到root用户则使用 su root / su - / su,此时系统会提示输入root用户的口令。

    成为root用户后 再次 su - 会输出最后一次登录时间
    在这里插入图片描述

  3. 换成root后 输入ctrl + d可退到普通用户 如果有的话

  4. 从用户A换到用户B 要输入用户B的密码

对Linux权限的理解

  1. 用户对当前动作没有权限访问
  2. 当前事件压根就没有被访问/执行的必要: 用充电器打游戏: 充电器没有打游戏的属性 玩家当然没有对应的权限
  3. 权限是什么? 权限是某一件事情是否允许被当前用户执行包括这个事情具不具有这个属性用户具不具备这个能力

2.2对于Linux下ll指令显示的文件属性的认识

在这里插入图片描述

对于文件的后缀:

  1. 在系统层面没意义: Linux操作系统下,不以文件后缀来区分文件类型 通过上述图片的第一个字符区分
  2. 但是文件类型可以给用户看 .exe .out .cpp 用户一看就知道是什么

但是如果执行以下指令 会报错 mv test.c test.txt gcc test.txt 为什么报错?不是不易后缀区分吗???

gcc不是linux操作系统 他只是linux操作系统下的一个软件

对于用户的 三种身份的认识: 拥有者 所属组 其他人

在这里插入图片描述

领导想要查看小红的test.c文件 怎么办???

把领导的权限打开

领导属于"其他人" 那么B组的也能看到 怎么办???

把领导加入到A组 那么test.c可以被拥有者/所属组查看

如何表述一个文件的权限?

在这里插入图片描述

如何操作?chmod指令

在这里插入图片描述

没有权限会发生什么事情???

对于普通用户

在这里插入图片描述

对于root
  1. root执行chmod a-rwx file.txt 除了不能执行 还可以读还可以写
  2. root还可以把不属于自己属于其他普通用户的文件权限改掉 此时普通用户无法执行对应操作 而 root却仍然可以进行相应操作

八进制法修改权限

在这里插入图片描述

把拥有者A的文件交给其他拥有者 也会引起拥有者A的权限改变

假定file.txt的当前拥有者为usrb
chown usra file.txt   (当前用户为file.txt的拥有者usrb 不是root 则此操作不被允许)
改为root后:chown usra file.txt   //okchogrp usra file.txt  //ok
file.txt原来的拥有者现在已经成为other那么他将失去对此文件的rwx权限

如何把交出去的文件再拿回来???

普通用户依然没法拿回来 两个办法:

  1. 输入root密码 改为root 拿回来
  2. 利用sudo chown usrb file.txt 输入usrb密码 拿回来sudo: 以root权限级别来执行后续命令
  3. sudo chown usra file.txt sudo chgrp usra file.txt ===>> sudo chown usra:usra file.txt

那岂不是人人都能执行root能执行的操作 root的存在还有什么意义?

不是所有用户都能执行sudo 用户想通过执行sudo提升权限的前提是,该用户被root添加到了信任列表

如何修改other?

other不确定 other是相对的 在修改own/grp的同时 other也在改变

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

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

相关文章

【Swift/OC】assert宏的使用

assert宏用于测试表达式的有效性,并在表达式评估为false时终止程序。它通常用于调试目的,以捕捉意外的条件或错误。 assert宏接受一个参数,即要测试的表达式。如果表达式评估为false(0),程序将终止并在控制…

0061【Edabit ★☆☆☆☆☆】【字符串模板:格式化1】Format I: Template String

0061【Edabit ★☆☆☆☆☆】【字符串模板:格式化1】Format I: Template String language_fundamentals strings Instructions Write a template string according to the following example: Examples const a "John"; const b "Joe"; co…

msvcr110.dll丢失的解决方法都有哪些,有效解决msvcr110.dll丢失

今天在使用电脑的时候提示一个和“msvcr110.dll丢失”有关的报错,出现这样的问题小编也是一脸懵,一下也不是知道该怎么处理了,于是小编去了解了一下msvcr110.dll丢失是什么情况,为什么会有这样的问题发生,同时msvcr110…

多模态论文阅读之VLMo

VLMo泛读 TitleMotivationContributionModelExpertimentsSummary Title VLMo:Unified Vision_Langugae Pre-Training with Mixture-of-Modality-Experts Motivation CLIP和ALIGN都采用dual-encoder的方式分别编码图像和文本,模态之间的交互采用cosine similarity…

《C++ Primer》第6章 函数(一)

参考资料: 《C Primer》第5版《C Primer 习题集》第5版 6.1 函数基础(P182) 典型的函数定义包括:返回类型( return type )、函数名字、0 个或多个形参( parameter )组成的列表、函…

Windows下pm2调用npm和nuxt的办法

pm2调用npm pm2 start C:\Users\xiao\AppData\Roaming\npm\node_modules\npm\index.js --name test -- run start 其中index.js的路径就是npm全局安装的路径,可通过以下命令获取 npm root -g require全局npm模块的一种方法 新建文件pm2npm.js const root req…

Redis常见的全局命令

Redis中最核心的两个命令set和get 两个最核心的命令就是get和set. redis是按照键值对的方式来存储数据的,所以set就表示把key-value存储进去,get表示根据key来查询对应的value. 需要注意的是,必须进入redis客户端才能输入redis命令. 此处的key和value都是字符串类型.对于上述…

致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]

文章目录 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用…

【行云流水线实践】基于“OneBuild”方法对镜像进行快速装箱 | 京东云技术团队

在云原生领域,无论使用哪种编排调度平台,Kubernetes,DockerSwarm,OpenShift等,业务都需要基于镜像进行交付,我们在内部实践“Source-to-image”和链式构建,总而总结出“OneBuild”模式。 其核心…

VS2022安装时碰到VsWebProtocolSelector.Msi包安装错误,2330code解决方法

未能安装包“Microsoft.VisualStudio.VsWebProtocolSelector.Msi,version17.8.34129.139”。 搜索 URL https://aka.ms/VSSetupErrorReports?qPackageIdMicrosoft.VisualStudio.VsWebProtocolSelector.Msi;PackageActionInstall;ReturnCode2330 详细信息 …

C++——定义一个 Book(图书)类

完整代码: /*定义一个 Book(图书)类,在该类定义中包括数据成员和成员函数 数据成员:book_name (书名)、price(价格)和 number(存书数量); 成员函数:display()显示图书的 情况;borro…

Spring面试题:(二)基于xml方式的Spring配置

xml配置Bean的常见属性 id属性 name属性 scope属性 lazy-init属性 init-method属性和destroy属性 initializingBean方法 Bean实例化方式 ApplicationContext底层调用BeanFactory创建Bean,BeanFactory可以利用反射机制调用构造方法实例化Bean,也可采用工…

css文本溢出省略号多行单行例子详细

在 CSS 中,可以使用 text-overflow: ellipsis; 属性来实现文本溢出时自动省略号的效果。但是该属性只能用于单行文本溢出的情况,对于多行文本溢出的情况,需要使用一定的技巧才能实现相应的效果。下面将分别介绍单行和多行文本溢出时的实现方法…

排序算法(1)

这里写目录标题 排序插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序向下调整堆排序 交换排序冒泡排序 排序 插入排序 直接插入排序 直接插入排序是O(N^2)的排序算法 从0下标开始往后排 void InsertSort(int* a,int n)//直接插入排序 {fo…

Apollo云实验:使用Sim control仿真自动驾驶

使用Sim control仿真自动驾驶 概述Sim control仿真自动驾驶启动DreamView仿真系统 实验目的福利活动 主页传送门:📀 传送 概述 自动驾驶汽车在实现落地应用前,需要经历大量的道路测试来验证算法的可行性和系统的稳定性,但道路测试…

语言模型和人类的推理都依赖内容

人类不太擅长逻辑,需要依赖内容直觉进行推理。许多认知研究表明,人类的推理并不是完全抽象的(不是完全的形式与内容分离)。 相反,我们的推理取决于问题的内容: 当内容支持逻辑推理时,我们回答…

Spring Boot实践 --windows环境下 K8s 部署 Docker

第一步:搭建项目并制作合适的jar包 这里我们准备好前面项目 用户管理系统 项目里的jar包。测试功能,定时任务会每过10s打印一次日志: E:\test>java -jar demospringboot-0.0.1-SNAPSHOT.jar2023-11-01 20:24:21.059 INFO 11848 --- [ …

关于Linux下排查C++进程Segment fault问题的步骤

C 中出现Segment问题的常见原因有: 如果要定位Segment fault问题,需要进行如下几步: gdb your_program(gdb) break main(gdb) run(gdb) backtrace同时要在CMakeLists.txt文件中配置编译时启用符号调试信息, 在C或者C中的设置分别如下&#x…

Layui上传Excel, 并返回每行导入的结果

前端代码 <button type"button" class"layui-btn" id"uploadExcel"><i class"fa fa-lg fa-file-excel-o"></i> 上传Excel </button>layui.config({base: assets/layuiadmin/ //静态资源所在路径}).extend({i…

Java中队列的数据结构

Java中的队列是一种基于先进先出&#xff08;FIFO&#xff09;原则的数据结构&#xff0c;它可以用来存储一组元素&#xff0c;并支持在队列的末尾添加元素&#xff0c;以及在队列的开头删除元素。Java中的队列可以通过Java集合框架中的Queue接口来实现&#xff0c;常用的实现类…