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

news/2024/11/20 23:35:52/

🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。
🐌 个人主页:蜗牛牛啊
🔥 系列专栏:🚲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.ppmy.cn/news/8638.html

相关文章

elasticsearch 的基本操作多维度分享

目录 一、索引操作 二、映射操作 三、文档操作 elasticsearch 的基本操作多维度分享此篇正式分享,具体包括索引、映射、文档的相关处理,模拟生成环境,通过DSL语句和java的高级REST形式全方位展示给大家; 一、索引操作 1、创建…

密码技术扫盲,Part 3:认证

个人博客 密码技术扫盲,Part 1:对称加密密码技术扫盲,Part 2:非对称加密🎯 密码技术扫盲,Part 3:认证 除了加密,还有一类用法是对信息的认证,主要包括 4 个技术 单向散…

如何在星巴克连接家中Windows台式机?(安卓,iOS, Windows, macOS配合frp公网iP实现)...

zhaoolee 最近热衷于和海外热心老哥们交换硬盘中的单机游戏资源(BT下载),家中有Windows台式机, 适合长时间挂机下载BT资源,zhaoolee希望能随时连接到Windows台式机新增下载任务,安装体积超大的主机游戏。 另外,公司有一…

Maven 之 依赖管理

目录 1、依赖传递 小案例: 2、可选依赖 3、 排除依赖 4、可选依赖和排除依赖的区别 我们开发一个工程需要用到大量得jar包,而这些jar 包就是我们所说得依赖,一个项目可以配置多个依赖。 1、依赖传递 我们来看一下今天用来演示的工程。…

微信小程序介绍

目录 1.什么是小程序? 2.小程序可以干什么? 2,1.相关资料 2.2.申请微信小程序测试账号 3. 开发一个demo 3.1 创建项目 3.2 配置 3.3 常用框架 3.4 目录结构说明 目录结构 小程序代码构成 JSON 配置 小程序配置 app.json 工具配…

Linux权限及其理解

文章目录:Linux权限的概念Linux权限管理文件访问者的分类(人)文件类型和访问权限(事物属性)文件权限值的表示方法文件访问权限的设置方法权限掩码目录的权限粘滞位总结Linux权限的概念 与其它系统相比,Lin…

ZC706P+ADRV9009连接RADIOVERSE详解之三

做好SD卡映像,连接好硬件之后,我们就可以尝试软件操作了。 步骤1:设置好网络 打开软件界面我们看到,板子默认的地址为192.168.1.10 端口号为55555.我们一定也设置跟板子连接的以太网口处于192.168.1网段,并且子网掩码…

机器学习--数据清理、数据变换、特征工程

目录 一、数据清理 二、数据变换 三、特征工程 四、总结 一、数据清理 数据清理是提升数据的质量的一种方式。 数据不干净(噪声多)? 需要做数据的清理,将错误的信息纠正过来; 数据比较干净(数据不是…