Shell 命令及运行原理 + 权限的概念(7)

文章目录

  • Shell 命令以及运行原理(4-1.22.08)
  • Linux权限的概念
    • 1. 什么是权限
    • 2. 认识人(普通用户,root用户)以及两种用户的切换
      • 认识普通用户和root用户
      • 两种用户之间的切换
      • 指令提权
    • 3. 文件的属性解析 + 权限属性
      • 指令`ll`显示出来的文件属性
      • 文件的权限属性

Shell 命令以及运行原理(4-1.22.08)

在这里插入图片描述

1. 先说结论:Shell的最简单的定义是一个命令行解释器(从技术的角度看),主要包含两部分的作用,将使用者的命令翻译给核心(kernel)处理,并且将核心的处理结果翻译给使用者

  • 上面提到了Shell它相当于是一个外壳程序,外壳程序它包裹着内核,这里的外壳程序可以用下面类比的例子去帮助理解
  • 你的电脑它只有在最后一刻才会将图形化界面给加载出来,其实在开机的过程中大部分时间都是在加载Windows操作系统这个内核,而这个图形化界面也可以将它称为外壳程序。
  • 还有咱们的手机,它的底层就是Linux操作系统这个内核,而安卓就是一个包裹内核的外壳程序(手机的图形化界面,更改壁纸,字体等等)

2. [root@hcss-ecs-28ce ~]#,在xshell中会发现每行命令的输入都会有这个内容

  • 其实它就相当于这个外壳程序打印出来的一行字符串,就是一个命令行提示符,程序就停在这里,等待你去输入内容。不知你有没有发现这个过程有点类似于C语言函数接口scanf,它也是将程序停止,等待你输入内容
  • 其次你输入的内容虽然没有带两双引号,但在交给外壳程序时就会被转换成字符串

3. 同样是举例子帮助咱们进一步的理解这个外壳程序和操作系统的关系

  • verison1:正常请求
    在这里插入图片描述
  • 今天你是张三,你今年已经28了,是一个事业有成的程序员,可还没有一个女朋友,这时候你爸就跟你讲:张三啊现在已经到了谈婚论嫁的时候了,你得抓紧啊
  • 张三一听这还得了,连忙拒绝:不行啊爸,你让我跟计算机打交道,我游刃有余,你让我跟女孩打交道,我半天憋不出一句话,我是个i人啊
  • 你爸说:嘿,这个刚好不用你操心,我去找咱们村东边的媒婆,让它来帮帮你,张三也就同意了
  • 这个王婆就开始问张三:咱们村子或别的村的有没有心仪对象啊,张三扭扭咧咧的说,其实我从小学就开始喜欢我隔壁家的如花了,我想跟她发展,发展
  • 王婆说:这很简单,立马就去找了如花,跟如花阐述了张三对她滔滔不绝的爱慕,可如花婉转的拒绝:张三是个好人,他值得更好的
  • 王婆回来将如花的话语复述给了张三,张三一听闹麻了
  • 那上面的这个故事就可以结合图片一起来理解,你是用户,王婆是外壳程序,你将你的需求向王婆阐述这是输入命令如花是操作系统,王婆阐述你的想法这是将命令交给操作系统如花听完后,委婉的向王婆表示了拒绝张三的意思这是将运行结果返回给操作系统王婆将如花的想法告诉了张三这是将操作系统的运行显示给用户你为啥不直接找如花阐述,而是要找媒婆呢因为你不擅长跟女孩打交道,同样你也不擅长跟操作系统接触
  • version2:非法请求
    在这里插入图片描述
  • 张三还是有点不想放弃,就再去找到王婆,跟王婆请求可不可以再帮忙说一下,王婆看在你是村长儿子,就同意再去试试
  • 王婆来到如花家门口往里一瞥发现一个容貌俊朗的小伙坐在如花旁边,与如花的父母交谈甚欢,王婆一看这还得了,现在肯定不能进行说这事,否则要被打成麻花
  • 王婆此时就没打扰如花了,回去向张三委婉的表达了如花拒绝张三的意思
  • 那这个时候,站在操作系统的角度看,你用户的命令有毛病,那这个外壳程序就不去打扰操作系统了,直接将命令拦截,保护内核
  • version3:实习生模式
    在这里插入图片描述
  • 张三这人是一个情种,自从王婆向他表示了如花明确拒绝的意思,他还是想让王婆再去试试,毕竟刘备三顾茅庐才请出诸葛亮出山,王婆也不好意思拒绝,就跟张三说那她在找个时间去说下媒
  • 王婆回家后仔细想了想,这不行啊!我这三次如果没说成功的话,那这个村子里我名声不就臭了啊,那以后谁还来找我说媒
  • 王婆就想到了一个办法,从招聘网站中招聘一堆实习生,跟村长讲:村长,以后你儿子的媒让我这个业务能力很强的员工负责
  • 此后凡是难啃的苦头都交给了实习生,成功了,大部分是王婆的功劳,失败了,没事我再给你派一个业务能强的员工
  • 这里王婆名声要保住了,才会有源源不断的人找上门去说媒而shell也会同过去创建子进程的方式进行命令行解析,防止用户的操作不当,给shell干没了

4. 在xshell每去创建一个用户都会去分配一个bash

[root@hcss-ecs-28ce ~]# ps ajx | grep bash6379  6382  6382  6382 pts/0     6415 Ss       0   0:00 -bash6382  6416  6415  6382 pts/0     6415 S+       0   0:00 grep --color=auto bash
  • bash会提供给你命令行提示符,你往后输入的命令都会先经过bash的分析再去交给操作系统
  • 那这个bashshell有什么区别呢?可以这么去理解,bash是王婆,shell是媒婆,shell是所有外壳程序的统称,这里用的具体的一款外壳程序就是bash

Linux权限的概念

1. 什么是权限

  • 权限是用来限制人的。一个人的组成 = 这个真实的人 + 身份角色,是什么身份就做什么样的事情。举个例子,咱们学生不能随便进入校长办公室是因为咱们的身份是学生,校长能随便进入也是因为它的身份是校长,权限控制的是你的身份

  • 目标事物的属性也会影响权限。举个不恰当的例子,可以在LeetCode上看电影吗?可以在爱奇艺上刷算法题吗?那肯定不可能啊,所以啊如果你的目标事物天然不具备这种能力的话,那就不可能去提供某种权限。再举一个具体的例子,一个文件它可读,可写,可执行,假如今天创建了一个文本文件,它压根就不可能去执行,所以它就不需要具备可执行权限

  • 权限 = 角色 + 事物属性。权限简单来讲,就是最终就是影响你能还是不能做一件事情

2. 认识人(普通用户,root用户)以及两种用户的切换

认识普通用户和root用户

  • root是超级管理员,几乎不受权限的约束。普通用户是Linux的使用者,受到权限的约束
  • 超级用户想变成谁就变成谁,直接输入命令:su 普通用户名,根本不用去输入密码,这就是超级管理员的权限
[root@hcss-ecs-28ce ~]# su xiao
[xiao@hcss-ecs-28ce root]$ whoami
xiao

两种用户之间的切换

  • 这里如果是普通用户与普通用户之间的切换,需要去输入目标用户的密码。这里要注意,输入密码是不回显的
[root@hcss-ecs-28ce ~]# ls /home
xiao  zhangsan
[root@hcss-ecs-28ce ~]# su xiao
[xiao@hcss-ecs-28ce root]$ su zhangsan
Password: 
[zhangsan@hcss-ecs-28ce root]$ 
  • 如果是普通用户想要切成超级用户root,直接输入命令:su,随后再去输入root的密码。其实张三这个普通用户知道root的密码,那它就是现实中的管理员,所谓现实中的管理员指的是:有这么一个人,他既承担着普通用户的身份,又承担着超级用户的身份,是众多普通用户中的其中一个
[zhangsan@hcss-ecs-28ce root]$ su
Password: 
[root@hcss-ecs-28ce ~]# whoami
root
  • 从超级用户回退到之前的普通用户,可以输入命令:ctrl + dexit
[zhangsan@hcss-ecs-28ce root]$ su
Password: 
[root@hcss-ecs-28ce ~]# whoami
root
[root@hcss-ecs-28ce ~]# exit
exit
[zhangsan@hcss-ecs-28ce root]$ whoami
zhangsan
  • 区分普通用户切换成root用户的两个命令:susu -
    • 命令su它只是进行了身份的切换,目前所处的家目录并没有发生改变
[xiao@hcss-ecs-28ce ~]$ pwd
/home/xiao
[xiao@hcss-ecs-28ce ~]$ su
Password: 
[root@hcss-ecs-28ce xiao]# whoami
root
[root@hcss-ecs-28ce xiao]# pwd
/home/xiao
  • 命令su -它相当于重新登录了一遍,目前所处的家目录已经发生了改变
[xiao@hcss-ecs-28ce ~]$ pwd
/home/xiao
[xiao@hcss-ecs-28ce ~]$ su -
Password: 
Last login: Sat Jun  7 17:46:07 CST 2025 on pts/1
[root@hcss-ecs-28ce ~]# whoami
root
[root@hcss-ecs-28ce ~]# pwd
/root

指令提权

1. 普通用户如何在不切换身份(root)的情况下,执行更高权限的命令呢?

这里就需要用到指令提权,输入命令:sudo 要执行的命令。随后输入你这个普通用户的密码(为啥,在后面解释),这样便能以root的身份去执行一条命令

在这里插入图片描述

2. 看到这里就不免心生疑问,为啥我指令提权要去输入这个普通用户的密码?难道不是去输入root的密码吗?就在这里好好说一下这个问题

  • 首先,这个指令提权并不是任何一个普通用户都能进行提权的。我这个用户能用sudo进行指令提权是因为我是被Linux系统信任的用户,新建一个用户默认是执行不了的
    在这里插入图片描述
  • 这里具体的配置后续会进行阐述,目前只是理清楚这个疑问。其实你可以这么理解,凡是能够进行指令提权的用户都被放在了一个白名单中(绝对信任的),那与之相对的就是黑名单(绝对不信任的
    在这里插入图片描述
  • 这里先不要去配置,vim编辑进去这个文件很可能出不来。这里张三不在sudoers中就无法进行指令提权
    在这里插入图片描述

3. 在什么场景下才会去进行指令提权呢?

普通用户在安装软件的时候需要超级用户的权限去执行,因为你可能是将这款软件往系统里去安装,其次你安装在系统里的软件,其它普通用户也是可以去使用的(因为你是以root的权限去安装的)

3. 文件的属性解析 + 权限属性

指令ll显示出来的文件属性

在这里插入图片描述

  • 这里将第一列称为文件类型d:目录-:普通文件c:字符设备文件(显示器和键盘),b:块设备文件(磁盘),p:管道文件I:链接文件。这些文件类型就先混个脸熟
[root@hcss-ecs-28ce lesson]# ls /dev/vda -l
brw-rw---- 1 root disk 253, 0 Apr  9 00:59 /dev/vda[root@hcss-ecs-28ce lesson]# ls /dev/tty -l
crw-rw-rw- 1 root tty 5, 0 Jun  7 18:17 /dev/tty[root@hcss-ecs-28ce lesson]# mkfifo fifo
[root@hcss-ecs-28ce lesson]# ls fifo -l
prw-r--r-- 1 root root 0 Jun  7 18:34 fifo[root@hcss-ecs-28ce lesson]# ls /usr/lib64 -l
lrwxrwxrwx.  1 root root      13 Jul 26  2024 p11-kit-trust.so -> libnssckbi.so
  • 之前不是提到:人 = 真实的人 + 身份角色。这里真实的人就是具体的用户(root与普通用户xiao),而Linux中的身份角色就是拥有者,所属组,other。这里要解释一下为啥会存在所属组这个东西
    • 举个例子,张三和李四在同一家公司开发同一功能的产品。一个月过去了,张三写了2千行代码(张三是这个文件的拥有者,所以这个文件就只有张三能读,能写
    • 而此时李四几行代码都没有憋出来,此时领导过来想看下张三写的代码,假设并没有所属组这个概念,那领导就是other,此时就要给other这个文件读的权限
    • 可是李四是属于other啊,如果给other开放了读的权限,那此时李四也就能看到代码了。因此有了所属组后,就可以把领导直接拉在一个组里,给领导这个文件读的权限,而other啥权限也不给
    • 上面是一种赛马机制:即一家公司中允许很多个团队做同样一件事情,谁做的好就捧谁,就让谁的产品推上市场

文件的权限属性

在这里插入图片描述

  • 一个文件所具备的属性就三个:可读(r),可写(w),可执行(x)。上面的属性三三为一组,每一组的顺序都是固定的,可读,可写,可执行,有相应的权限就显示对应的r w x,没有则显示-
  • 在下面文件中,拥有者具备该文件的读,写权限,但是不具备可执行权限。所属组和other只具备读的权限
    在这里插入图片描述
  • 若要修改文件的属性要用到指令chmod,如果要进一步修改角色对该文件所具备的权限则需要带上选项
    • 命令chmod u-r temp.txt,给拥有者减去对该文件的读权限。u:usg:groupo:other
    • 其实对于root来讲,这文件的权限就算全被减没了,那还是该干啥就干啥(该读还是读,该写还是写)。除了目标事物的属性会影响权限这种,比如文本文件你要它可执行,那这种权限减不减root都办不到
      在这里插入图片描述
[xiao@hcss-ecs-28ce ~]$ touch temp.txt
[xiao@hcss-ecs-28ce ~]$ ll temp.txt
-rw-rw-r-- 1 xiao xiao 0 Jun  7 20:36 temp.txt
[xiao@hcss-ecs-28ce ~]$ chmod u-r temp.txt
[xiao@hcss-ecs-28ce ~]$ ll temp.txt
--w-rw-r-- 1 xiao xiao 0 Jun  7 20:36 temp.txt
[xiao@hcss-ecs-28ce ~]$ cat temp.txt
cat: temp.txt: Permission denied
  • 这些命令加选项用法差不多,只是uro来回切换。chmod u-w,chmod u+rw,chmod o+w,chmod g-r
  • 命令chmod a+r temp.txt给拥有者,所属组,other都加上r权限(a:all),三种角色的权限可以一并操作:chmod u-rw,g-rw,o-r temp.txt中间不要带空格
[xiao@hcss-ecs-28ce ~]$ ll temp.txt
-rw-rw-r-- 1 xiao xiao 0 Jun  7 20:36 temp.txt[xiao@hcss-ecs-28ce ~]$ chmod u-rw, g-rw, o-r temp.txt
chmod: invalid mode: ‘u-rw,’
Try 'chmod --help' for more information.(带了空格)[xiao@hcss-ecs-28ce ~]$ chmod u-rw,g-rw,o-r temp.txt
[xiao@hcss-ecs-28ce ~]$ ll temp.txt
---------- 1 xiao xiao 0 Jun  7 20:36 temp.txt[xiao@hcss-ecs-28ce ~]$ chmod a + r temp.txt
chmod: invalid mode: ‘a’
Try 'chmod --help' for more information.(仍然带了空格)[xiao@hcss-ecs-28ce ~]$ chmod a+r temp.txt
[xiao@hcss-ecs-28ce ~]$ ll temp.txt
-r--r--r-- 1 xiao xiao 0 Jun  7 20:36 temp.txt
  • 不仅可以去修改角色对该文件的属性,还可以修改用户所对应的角色(看它是该文件的拥有者,所属组,还是other

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

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

相关文章

以智能管理为基础,楼宇自控打造建筑碳中和新路径

在全球气候变化的严峻形势下,“碳中和”已成为各国发展的重要战略目标。建筑行业作为能源消耗与碳排放的“大户”,其运行阶段的能耗占全社会总能耗近40%,碳排放占比与之相当,实现建筑碳中和迫在眉睫。传统建筑管理模式下&#xff…

Python爬虫实战:研究Hyper 相关技术

一、项目概述 本项目展示了如何结合 Python 的异步编程技术与 Hyper 框架开发一个高性能、可扩展的网络爬虫系统。该系统不仅能够高效地爬取网页内容,还提供了 RESTful API 接口,方便用户通过 API 控制爬虫的运行状态和获取爬取结果。 二、系统架构设计 1. 整体架构 系统采…

html 滚动条滚动过快会留下边框线

滚动条滚动过快时,会留下边框线 但其实大部分时候是这样的,没有多出边框线的 滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行为有关。这种问题可能出现在使用了自定义滚动条样式的情况下。 注意:使用方法 6 好使,其它…

【Linux】Ubuntu 创建应用图标的方式汇总,deb/appimage/通用方法

Ubuntu 创建应用图标的方式汇总,deb/appimage/通用方法 对于标准的 Ubuntu(使用 GNOME 桌面),desktop 后缀的桌面图标文件主要保存在以下三个路径: 当前用户的桌面目录(这是最常见的位置)。所…

【自然语言处理】大模型时代的数据标注(主动学习)

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构D 实验设计E 个人总结 A 论文出处 论文题目:FreeAL: Towards Human-Free Active Learning in the Era of Large Language Models发表情况:2023-EMNLP作者单位:浙江大…

【论文解读】DeepSeek-R1

文章目录 概览一、DeepSeek-R1-Zero:在 Base Model 上直接进行 RL(一)强化学习算法(二)奖励模型(三)数据构造(四)DeepSeek-R1-Zero 的性能、自我进化过程和 Aha Moment1.…

巴西医疗巨头尤迈Kafka数据泄露事件的全过程分析与AI安防策略分析

一、事件背景与主体信息 涉事主体:Unimed,全球最大医疗合作社,巴西医疗行业龙头企业,拥有约1500万客户。技术背景:泄露源于其未保护的Kafka实例(开源实时数据传输平台),用于客户与聊天机器人“Sara”及医生的实时通信。二、时间线梳理 时间节点关键事件描述2025年3月24…

软信天成:数据驱动型背后的人工智能,基于机器学习的数据管理

在数字化转型浪潮中,当代企业如同逆水行舟,不进则退。无数企业希望通过数字化转型捕获全新的市场机遇,改善财政状况,在未来市场竞争中占据一席之地。要想获得成功的数字化转型,关键因素在于具备可靠、及时的数据用以支…

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…

【Java学习笔记】StringBuilder类(重点)

StringBuilder(重点) 1. 基本介绍 是一个可变的字符串序列。该类提供一个与 StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的) 该类被设计用作 StringBuffer 的一个简易替换,用在字符…

计算机网络 | 1.2 计算机网络体系结构与参考模型

计算机网络体系结构与参考模型 目录 计算机网络体系结构与参考模型 【思维导图】 1、计算机的分层结构 1、为什么要分层? 2、什么是计算机网络体系结构 2、计算机网络协议、接口和服务 1)协议: 2)接口: 3…

微软的新系统Windows12未来有哪些新特性

在今年即将到来的重大设计升级中,苹果计划对其全线操作系统统一按年份命名,作为另一巨头微软的win12还远吗?win11和win10是微软现在正在用的主流版本,win11系统发布于2021年6月24日,win10系统发布于2015年7月29日。预计win12尝鲜版可能在2025年下半年或明年。 尽管win12还…

制造业数智化卡在知识断层?R²AIN SUITE AI知识管理打通关键经络

在一家工厂里,工程师正面临棘手难题——某机器异常振动的处理方案。他的笔记本记录着三年前类似案例的解决方案,但翻查半小时仍未找到关键参数。与此同时,工厂的碳排放监控系统显示,因设备停机导致的额外能源损耗已使产线碳强度有…

构造数列中的常见变形总结

前情概要 针对高考中构造数列的常见变形做一总结,便于梳理思路,提升思维。 类型Ⅰ: 形如 a n + 1 = p ⋅ a n + q a_{n+1}=p\cdot a_n+q an+1​=p⋅an​+q, p , q p,q p,q为常数,即 a n + 1 = f ( a n ) a_{n+1}=f(a_n) an+1​=f(an​),构造变形方向: 其一: a n…

全国县域统计年鉴PDF-Excel电子版-2022年

全国县域统计年鉴PDF-Excel电子版-2022年.ziphttps://download.csdn.net/download/2401_84585615/89784662 https://download.csdn.net/download/2401_84585615/89784662 《中国县域统计年鉴》是一部全面反映中国县域社会经济发展状况的资料性年鉴。自2014年起,该年…

81 实战一:给root目录扩容

添加一块100G硬盘 vgextend centos /dev/sdb1 /dev/sdc lvextend -L +120G /dev/centos/root xfs_growfs /dev/centos/root df -h 看是否扩容成功 82 实战二:给swap空间扩容 添加一块20G硬盘 fdisk -l 可以看到新添加的硬盘 vgextend centos /dev/sdd …

实现购物车微信小程序

实现一个微信小程序购物车页面,包含以下功能: 需求说明: 商品列表:显示商品名称、价格、数量加减按钮,支持修改商品数量(数量≥1)。 全选 / 反选功能:顶部 “全选” 复选框&#…

R语言使用随机过采样(Random Oversampling)平衡数据集

随机过采样(Random Oversampling)是一种用于平衡数据集的技术,常用于机器学习中处理类别不平衡问题。当某个类别的样本数量远少于其他类别时(例如二分类中的正负样本比例悬殊),模型可能会偏向多数类&#x…

【力扣】2434.使用机器人打印字典序最小的字符串

1、题目描述: 2、测试用例: 3、解题思路 每次删除字符串s的第一个字符,可以将s看做队列,每次从头部出。在t的尾端插入或删除,可以将t看做栈栈顶元素出栈条件:①比即将入栈的元素小并且比s中剩下的还没有入…

业务材料——半导体行业MES系统核心功能工业协议AI赋能

一、前置概念 半导体行业 半导体行业主要生产基于半导体材料(如硅、锗、化合物半导体等)的电子元器件及相关产品,广泛应用于计算、通信、能源、医疗等领域。 MES系统 MES系统(Manufacturing Execution System,制造…