【Linux】shell命令以及运行原理和Linux权限的理解

news2024/11/17 21:56:27

🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。
🐌 个人主页:蜗牛牛啊
🔥 系列专栏:🚲Linux
📕 学习格言:博观而约取,厚积而薄发
🌹 欢迎进来的小伙伴,如果小伙伴们在学习的过程中,发现有需要纠正的地方,烦请指正,希望能够与诸君一同成长! 🌹


文章目录

  • 一、shell命令以及运行原理
  • 二、Linux权限
    • 1.Liux权限的概念
    • 2.Linux的文件属性
    • 3.Linux文件权限

一、shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但是一般用户不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。从技术角度,shell的最简单定义就是命令行解释器,主要作用是将使用者的命令翻译给核心(kernel)处理,同时将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过点击图形接口,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符或者运行起来一个应用程序),shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

如下图所示,框起来的我们通常称之为命令行,在命令行输入一个命令,是shell帮我们执行的,它自身也是一个指令,一个程序。

在这里插入图片描述

用户并没有直接访问操作系统,在操作系统外面包裹了一层软件层,叫shell外壳程序。
shell外壳程序是包裹在操作系统外层的一层软件层,核心工作:命令行解释或者操作解释,用来将用户的操作解释给操作系统,让操作系统去执行,执行完毕将结果经过shell再交给用户,这样的软件层称为外壳程序。


shell存在的意义:帮忙进行命令行传递和返回结果;保护操作系统
shell是外壳程序的统称,而bash是centos7下具体使用的命令行解释器,用生活中的例子来说shell相当于媒婆这个职业,而bash相当于一个姓王的媒婆,属于媒婆这个行业其中的一个。

二、Linux权限

1.Liux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。超级用户可以在Linux系统下做任何事情,不受限制;普通用户在Linux下只能做有限的事情。权限是限制人的,就好比你在某些视频网站看某些视频需要开通vip一样;但是访问的对象可能没有这种属性权限,比如你在视频网站刷算法题,这显然是不可能的。一件事情是否允许被“谁”做,权限=“人(用户)”+“事物属性(文件)”

root用户和普通用户互相切换问题:
指令su:在同一个bash下进行身份切换。
从普通用户切换到root用户:需要输入root用户密码。

在这里插入图片描述

从root用户切换到普通用户:可以直接切换,su指令后面直接要普通用户名。

在这里插入图片描述

su -:让我们的root重新登录,进入到root用户家目录中。

在这里插入图片描述
我们还可以在普通用户下切换到其他普通用户,只要输入其他用户密码。如下图为从用户nmz切换到用户zhangsan。

在这里插入图片描述

2.Linux的文件属性

ll指令下显示的更多文件属性中各个字符的含义如下所示。

在这里插入图片描述
在Linux下不用文件后缀区分文件类型,往往用文件属性中第一列的第一个字符来区分文件类型,以d开头的表示是目录;-开头的表示是普通文件、文本、可执行文件、归档(压缩)文件等;b表示块设备,bloc:磁盘;c表示字符设备,如键盘或者显示器;p表示管道文件;s表示网络socket文件;l表示链接文件link。但是在编译C语言等程序文件时是使用gcc编译的,这里的不用文件后缀指的是Linux操作系统下,并不代表gcc等编译软件不需要文件后缀。

Linux中的角色划分:文件拥有者、文件所属组和文件的other。Linux中root和普通用户可以是文件拥有者或者是问价所属组亦或文件的other。当用户不是拥有者和所属组的时候默认是other。
三个角色有各自的权限,第一列中除第一个字符外,后面的9个字符都表示权限,且三个字符为一组。r字符表示可读;w表示可写;x表示可执行权限;-表示该位置无对应权限。
三个字符的位置以及含义是确定的,文件自身具有权限属性
下图中a.out文件中文件的拥有者是root,文件的所属组是root,拥有者权限是可读可写可执行;所属组权限是可读不可写可执行;other拥有的权限是可读不可写可执行。
在这里插入图片描述

可以通过chmod指令修改文件拥有者、所属组和other的权限。但是一般情况下改一个文件的权限必须是文件的拥有者或者是root才可以更改。命令选项中u表示修改文件拥有者权限,g表示修改文件所属组权限,o表示修改other权限,a表示给所有角色增加权限,可以用-删除权限,也可以用增加逗号,的方式对不同角色的权限进行增加或者删除。

在这里插入图片描述

更改权限的八进制方案,我们可以认为有权限的时候为1,没有权限的时候为0。下图中test.c文件权限用二进制表示为011 100 101,转化为八进制是345;要是想更改为给所有角色增加rw权限,即rw-rw-rw-,用二进制表示为110 110 110,转化为八进制是666。
在这里插入图片描述

chown指令用来修改文件的拥有者,chgrp指令用来修改文件所属组。
但是如下图所示显示权限不允许,因为把一个东西给被别人的时候要经过别人的允许,但是在Linux中只有root能够强制把文件的角色修改。sudo指令可以提升单条命令的权限,使其以root身份运行。
su指令输入的是root用户密码,而sudo指令需要输入的是当前用户的密码。但是当我们使用sudo命令时,会显示nmz is not in the sudoers file. This incident will be reported.这是因为我们还没有取得权限,后续文章会具体讲解这一问题。

在这里插入图片描述
在这里插入图片描述

我们可以先尝试在root用户下修改文件角色,也可以同时修改拥有者和所属组。更改拥有者和所属组为其他用户之后,可能导致当前用户无法读取文件,但是root用户不会受到影响。
权限修改之后如果没有对应的权限不能执行对应操作,没有权限访问。但是root用户不会受到影响。

在这里插入图片描述
在这里插入图片描述

3.Linux文件权限

file:显示文件类型。

在这里插入图片描述

目录的权限:当我们进入一个目录时需要的权限是x权限;对于目录来讲,在没有r权限的目录下,我们无法查看当前目录下的文件名和文件属性;在没有w权限的目录下,无法直接在该目录下创建新文件。但是在root用户下不受限制。
如下图所示,在普通用户下当拥有者没有r读权限和w写权限时,仍然能够进入到dir1目录中,当在普通用户下去掉x权限之后,不能进入目录。

在这里插入图片描述
在这里插入图片描述

当去掉r权限,留下wx时,可以进入创建新的文件和目录,但是不能查看当前目录下的文件。

在这里插入图片描述

当去掉w权限,留下rx时,可以进入查看文件和目录,但是不能创建新的文件和目录。

在这里插入图片描述

当我们创建一个新的普通文件和目录时,他们都有自己的默认权限,不同的操作系统默认权限是不一样的。我们先了解几个概念:默认权限(最终呈现出来的权限)、起始权限(系统设定的)、最终权限(和默认权限相似)。

在这里插入图片描述系统为了更好的控制文件权限,系统会有默认的权限掩码。
权限掩码:在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限。比如要得到10111010的后四位,通过它&00001111得到00001010,从而得到后四位,其中00001111被称为掩码。在Linux中可以通过umask指令查看当前系统的权限掩码,也可以通过在umask后添加八进制数字改变权限掩码,,如想改变权限掩码为007,在umask后面加上007:umask 007

在这里插入图片描述

最终权限=起始权限&(~umask)。普通文件的起始权限是从666(rw,没有x)开始的,目录文件的起始权限从777开始的(rwx)。

在这里插入图片描述

扩展:
背景:未来在使用Linux时,可能会有一些共享目录被所有的普通用户共享,用来保存普通用户产生的临时数据。
准备:共享目录通常是由root提供的,/home就相当于一个共享目录。
在root目录下创建一个公共目录public,同时将权限放开,然后在不同的用户下在这个目录里创建文件。
在这里插入图片描述

虽然在同一个目录下,但是使用的时候还是会受到权限的约束,但是删除时候不会受到权限的影响。

在这里插入图片描述


为什么拦不住删除?能够在特定目录下,创建或者删除文件由该目录的w权限决定。当w权限没有之后同样不能删除文件,但是此时也不能创建文件了,失去了其作为共享目录的意义。

文件被所有人共享的时候受权限约束,但是拦不住别人删我的文件,所以为了能够让大家共享文件且不让其他人随便删除别人的文件引入了粘滞位,粘滞位只能给共享目录添加,且只能在root用户下可以添加。添加粘滞位之后,只能由目录中文件的拥有者和超级用户能删,别的不能删。
chmod +t 共享目录名:给共享目录添加粘滞位,增加粘滞位之后不让删除。

在这里插入图片描述

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

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

相关文章

VBA之正则表达式(39)-- 提取规格数据(2/2)

实例需求:A列为某产品名称,现需要提取其中的规格数据,具体规则如下: 规格数据以如下关键字开头:RO、RE、SQ、SD、QD、OB、HX、ET、QR、D2规则数据可能有多段(截图中红色部分)提取规格数据之后&…

SpringBoot简单功能分析,静态资源访问和静态资源配置原理解析

目录 1、SpringMVC自动配置概览 2、简单功能分析 2.1、静态资源访问 1、静态资源目录 2、静态资源访问前缀 3、webjar 2.2、欢迎页支持 2.3、自定义 Favicon 2.4、静态资源配置原理 1、SpringMVC自动配置概览 官网Web (spring.io) Spring Boot provides auto-configur…

论文综述——UNIRE: A Unified Label Space for Entity Relation Extraction

UNIRE: A Unified Label Space for Entity Relation Extraction1 任务介绍2 UniRE模型3 实验4 总结1 任务介绍 过构建标签空间来对实体和关系进行联合抽取的方法。 实体关系抽取旨在提取文本中的实体并检测它们的实体类型,以及对每个实体对检测它们的关系。作者提…

MAX78000FTHR简单介绍与初次上手

特点 MAX78000FTHR是基于MAX78000的小型板微控制器单元(MCU)。 该 MCU 面向在边缘运行的人工智能 (AI) 应用程序。在这种情况下,“边缘”并不意味着技术的前沿(尽管这就是芯片);这意味着靠近需要它的地方…

vector对于自定义类型的操作(memcpy浅拷贝问题)

目录 如果对于不涉及资源管理的自定义类型的操作(Date): 对涉及资源管理类操作(String): 一、插入四个元素(代码正常编译没有任何资源泄露问题) 二、当插入第五个元素时&#xf…

【C++进阶】Map 和 Set(详解)

🌈欢迎来到C专栏~~Map 和Set (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&am…

【JavaScript】DOM 的概念、获取DOM元素和操作元素属性

文章目录【JavaScript】DOM 的概念、获取DOM元素和操作元素属性一. 概念二. DOM 操作(1) 获取DOM元素的方式1. document 获取元素方法2. 通过 HTML5 新增的方法获取案例:登录界面密码显示与隐藏(2) 读写元素内部的结构内容1. 改变元素节点里的内容2. 改变元素节点的…

操作系统的基本概念、功能、目标

文章目录🎀前言:本篇博客知识总览🪂操作系统所处位置📖操作系统的概念🎯操作系统的功能和目标🪅1.操作系统作为系统资源的管理者🪅2.操作系统作为用户与计算机硬件之间的接口🪅3.操作…

连接数据库和简单操作数据库

连接数据库和简单操作数据库JDBC程序编写步骤创建一个演员表数据库表的连接前置工作五种连接方式方式五的配置文件配置文件里面的内容通过JDBC进行对actor表操作。ideal执行后的结果数据库actor表结果JDBC程序编写步骤 1.注册驱动-加载Driver类 2.获取连接-得到Connection 3.执…

【阶段一】Python快速入门04篇:运算符、循环语句、条件语句与函数

本篇的思维导图: 运算符 算术运算符 算术运算就是常规的加、减、乘、除类运算。下表为基本的算术运算符及其示例。 描述 代码

【C++常用容器】STL基础语法学习map容器

目录 ●map基本概念 ●map构造和赋值 ●map大小和交换 ●map插入和删除 ●map查找和统计 ●map排序(map初始排序顺序为从小到大,用仿函数将其改为从大到小) ●map基本概念 map中的所有元素都是pair,pair中第一个元素为key&a…

【WeThinkIn出品】2022年度总结

Rocky Ding公众号:WeThinkIn写在前面 【WeThinkIn出品】栏目专注于分享Rocky的最新思考与经验总结,包含但不限于技术领域。欢迎大家一起交流学习💪 这篇文章发布的时候,应该已经是2023年了。在这里Rocky祝大家元旦快乐&#xff01…

前端最常用的几个线上设计网站

文章目录前言CoDesign 腾讯自研设计平台【墙裂推荐】蓝湖- 高效的产品设计协作平台【墙裂推荐】zeplin Deliver on the promise of design 【国外,不推荐】总结前言 随着IT技术的不断进步,很多团队都将很对线下工作转移到了线上,不仅便捷&a…

Ae 效果详解:毛边

Ae菜单:效果/风格化/毛边Effects/Stylize/Roughen Edges毛边 Roughen Edges效果可使得 Alpha 通道的边缘变粗糙,可以为图像添加各种边缘效果。通过分形影响改变边缘样式,并可增加颜色以模拟铁锈和其他类型的腐蚀。此效果可为文本或图形提供自…

算法之数组常见题目

数组是存储在连续内存空间上的相同类型数据的集合。在数组中可以方便地通过下标索引的方式获取对应的数据。 需要注意的是: 数组的下标都是从0开始的。数组在内存空间是连续的,所以删除或者增添元素时难免要移动其他元素的地址,只能覆盖。 …

【Kubernetes | Pod/容器】如何修改 Pod 中容器的守护进程

目录题1. 环境设定1.1 创建名为 vmware-nginx 的 Pod2. 查看容器默认守护进程2.1 查看容器所在节点2.2 查看容器ID2.3 查看容器中运行的进程信息3. 修改容器默认守护进程3.1 类比 Docker3.2 修改 YAML 文件改变默认守护进程参数说明4. 验证4.1 删除旧的 vmware-nginx.yaml 容器…

质性分析软件nvivo的学习(一)

1、软件安装: 科研也是需要投资的,建议淘宝购买软件,价格60米。 2、软件基础使用说明: 说明:以下笔记来源都是通过B站视频自学总结的,您可以选择通过下面的B站视频学习,也可以选择通过我总结的内容速学。…

(Week 9)图论(C++,Dijkstra,Floyd)

文章目录【深基18.例3】查找文献(C,图的遍历)题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1解题思路:【模板】floyd(C)题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样…

内核内存管理

1.内核内存管理框架 内核将物理内存等分成N块4KB,称之为一页,每页都用一个struct page来表示,采用伙伴关系算法维护 内核地址空间划分图: 3G~3G896M:低端内存,直接映射 虚拟地址 3G 物理地址 细分为&a…

我国软件供应链安全现状学习分析整理分享 附完整下载地址

声明 本文是学习2021年中国软件供应链安全分析报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 一、前言 数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一&#…