第三章 Linux中的shell与权限

一、linux的内核kernel与外壳shell

1、内核与外壳的关系

linux是一个操作系统linux内核顾名思义就是linux操作系统的核心。

我们平时输入的命令行系统是听不懂的真正在背后实现使用者需求的是linux的内核。

我们本可以直接操作内核但是这样对使用者的门槛是相当高的。就像很多不懂计算机的人依然能够轻松调用windows中的软件或者编辑一些内容。但他们并不是直接去操作windows的核心的。那么为了降低使用的门槛就在内核的外层包裹了一层外壳。
在这里插入图片描述

使用者直接面对的其实是外壳(shell)。比如在windows系统中相当于shell的其实就是可视化的图形界面。而在我们的linux操作系统中shell就是我们的命令行指令。

当我们通过一些简单的指令传递给shell的时候shell会将我们的指令传递给内核然后内核开始工作工作结束后内核将结果反馈给shellshell再转化为使用者能够看懂的语言反馈给使用者。

所以外壳是人和linux内核之间沟通的桥梁。

2、外壳的作用

其实根据刚才的介绍我们或许已经领悟到其中一个作用方便用户使用操作系统。

还有一个很重要的作用就是保护内核

什么意思呢当用户想要访问一个东西或编辑一些东西的时候shell会看你有没有权限去执行这些操作如果没有的话shell会阻止你访问防止用户破坏内核。如果内核被破坏的话很明显这个系统就崩掉了。

此时我们就提到了另外一个重要的概念权限。那么linux的权限是如何体现的呢请看作者后续的讲解。

二、权限

linux的权限的解析要从两个方面出发用户和文件。这两方面的共同组成了linux的权限。

1、用户中的权限

1超级用户root

超级用户root可以做任何事情不受任何的限制。 当我们用root用户去登录的时候我们的命令行中的提示符是“#”。

2普通用户

a.普通用户的创建

增加用户
	adduser 用户名
	
设置密码
	passwd 用户名

需要注意的是在设置密码的时候屏幕上不会显示设置结束后直接回车确定即可。

b.普通用户的权限

普通用户就是我们登录linux后自己创建的用户。普通用户只能linux系统中操作有限的事情。普通用户在使用linux的时候命令行的提示符是 $

3用户之间的短暂切换

比如某个文件我们身为普通用户是无法访问的那么我们可以通过下面这个指令实现操作某个文件时的短暂提权。

su 用户名

如果是从root切换暂时切换到其余普通用户可直接切换。但是从普通用户利用该命令切换到root超级用户则需要填写root用户的登录密码。

由于是短暂切换所以我们可以按ctrl + d切换回来。

4单条指令的提权操作

sudo 命令

sudo指令可以在不更改当前用户的情况下对某条指令进行提权操作。

2、文件中的权限

1文件访问者的分类

无论我们是超级用户还是普通用户在面对不同的文件的时候我们所扮演的角色也是不同的。

面对一个文件的时候访问者的角色共分为以下三类

  • 文件或文件目录的所有者User
  • 文件或文件目录的所有者所在的组中的用户Group
  • 其他用户Others

每个文件的权限都是针对三类角色分别提出的。

2文件自身的权限

在linux中我们观察目录下文件的一些详细的信息的时候会出现一大串信息如下图所示
在这里插入图片描述
我们发现在我们创建的目录和文件之前有很多信息但是这些信息代表什么含义呢

请看下面的图解
在这里插入图片描述
上述图中的解释其实就很容易理解了。或许有人会问怎么没写others其实这个问题很简单除了文件所属的用户和文件所属的组之外其余用户都是others。

但是上面的图中并没有讲解文件所属用户前面的这一堆字母是什么信息那么接下来作者将对此进行详细地讲解。
在这里插入图片描述

我们解决以下几个问题

a.后缀与文件类型

我们发现我们创建的文件中有的是后缀为.cpp的代码文件还有的是没有后缀的不知名文件但是这些文件信息中的第一行都是-说明在linux系统看来无论这些文件的后缀是什么对于系统而言这些文件都是普通文件

既然这些文件对于linux都一样我们是否可以用linux下的编译软件gcc去编译那些没有.c后缀的文件呢

答案是不可以的。

这时候就会有很多人感到疑惑了为什么呢不都是普通文件吗

其实答案很简单对于linux来说后缀没有用但是对于linux上下载的软件gcc而言后缀是起到了作用的。因此这些文件在面对linux的时候可能都是普通文件但是在面对不同的软件的时候这些普通文件又根据后缀有了不同的分类。

b.rwx是什么

除了第一列以外还有9列这9列三个为一组代表三种不同角色面对该文件的时候所具备的权限。

对于任意的一组三个位置都是固定的分别代表读 ( r )、写( w )、可执行( x )

这三个之间的顺序是固定的如果哪一位上是-则说明这一位所代表的权限该角色是不具备的。

比如图片中的第一行
在这里插入图片描述
橘色框中的
rw-的含义是在面对该文件的时候文件的拥有者可以进行读和写的操作但是不具备可执行的操作。

三、权限的更改操作

1、语法

chmod u/g/o/a +- rwx filename

上述指令语法中u代表user用户。g代表group即小组。o代表others即其他。chmod的意思是更改权限+代表增加权限-代表取消权限。rwx分别代表阅读写执行三种操作。
在这里插入图片描述
当然我们还可以采用另外的方式更改这些文件的权限我们知道在计算机的语言中0代表假非0代表真。我们此时可以采用一种二进制的方式去更改因为二进制是由0和1组成的。恰好分别代表了假与真。

那么我们怎么更改呢rwx可以看作三位如果我们输入的是77的二进制位是111三位都是真代表三个权限都具备。如果我们输入的是55的二进制位是101则说明只用读和执行的权限没有写的权限。

而我们的用户所扮演的角色有三个因此我们需要输入三个数字分别代表三者权限。
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shelllinux