Linux权限的理解

shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

在这里插入图片描述

如上图,在Linux中我们分为以上两个层次,Linux内核(操作系统),操作系统内部是很复杂的,所以为了提升用户的体验,我们在外面套了一层外壳程序。例如:图形化界面就是其中一种,它本质上是为了方便用户去操作计算机而设计出来的。我们平常使用的指令也是其中的一种,在windows中我们一般都是直接使用鼠标去进行点击操控,而Linux中我们通常是使用指令去操控,所以无论是Linux中的指令还是windows中的图形化界面,本质上就是一种外壳程序

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

Linux权限的解释

在Linux中,我们有两种用户:

  1. 超级用户(root)
  2. 普通用户
  3. 超级用户的命令提示符是“#”,普通用户的命令提示符是“$” 。

我们可以通过:su + 用户名来进行切换用户,**su + -**可以直接切换为超级用户

在这里插入图片描述

普通用户无论切什么类型的用户都需要输入密码,而超级用户切换普通用户不需要输入密码。

同时我们还可以用:sudo 进行短暂的提权

Linux权限的管理

文件访问者的分类

在生活当中我们每一个人都担任着不同的角色,而每个角色又有对应的权限约束着,例如:作为一个学生,并不能随意出入校长办公室等等。

而在Linux中我们也有三种不同的 “人”

  1. 拥有者 (user)
  2. 所属组 (group)
  3. other

同时Linux中只给出了拥有者和所属组的信息,至于other,由于我们可能有多个other,所以只要不是拥有者和所属组其中一个,那么就是other。

文件类型和访问权限(更改文件的属性)

所以我们把Linux中的权限广义为:“人” + 文件权限属性,同时我们可以通过 chmod + (augo)来改变文件的权限属性

a : all 所有角色

u:user - 拥有者

g:group - 所属组

o:other

同时在Linux中改变文件权限属性的方式有两种:

  1. 直接使用 u(±) (rwx)
  2. 使用八进制来改变

先来看第一种:

再来看第二种:

在这里插入图片描述

同时在Linux中我们确定我们究竟是哪种 “人” 的匹配方式是从左向右依次匹配,只要匹配到了后面就不会匹配了。

在这里插入图片描述

同时这了有一个问题:

随便给一个文件的添加可执行权限,那么他可以向我们的可执行程序一样直接运行吗?

在这里插入图片描述

如上图,答案是不行的:所以我们文件可执行的条件为:本身就是可执行程序并且有可执行的权限,同时只有我们是当前文件的拥有者才可以改变文件的属性,但是作为超级用户的话,不管你是不是文件的拥有者都可以改变文件的属性。

文件类型和访问权限(更改角色)

上面的方式是更改文件的权限属性来访问文件,而我们还有一种方法是直接更改角色。

在这里插入图片描述

目录的权限

我们目录和文件的权限属性代表的不同的含义:

r : 能否显示目录内容

w: 能否删除和新增文件

x:能否进入目录

在这里插入图片描述

所以新建删除文件的权限跟文件的权限没有关系,而是跟当前目录的权限。

文件掩码

有没有注意到我们新建目录和文件的默认文件权限属性为:775和664,这时为什么呢?那就是因为文件掩码的存在,我们目录和文件的初始权限为777和666,而最终权限 = 起始权限 & (文件掩码取反)。

我们可以通过umask指令来查看当前系统的文件掩码。

在这里插入图片描述

同时我们也可以使用 umask + 8进制来改变文件掩码。

粘滞位

这里我们有两个普通用户A和B,我们现在让A和B共享一个目录,他们两个互相独立,往目录里面写入文件。那么这个目录要不属于其中任何一个人,所以我们在普通用户的根目录中用超级用户创建一个shared_dir,同时把目录的写入权限打开,那么此时我们的A和B就可以往里面写入文件了,那如果现在我们的A不想让B看自己的文件,同时把这个文件的other设置为不可写入和读取,那么此时我们的B就看不了文件内容了,但是此时我们的B却可以删除A的文件,这样与我们的期望不同,我们明明不想让B看我们文件的内容,但是它竟然可以之间删除我们的文件!!。

这时候我们只需要在这个shared_dir目录添加一个粘滞位即可。

在这里插入图片描述

那么这个粘滞位有什么用呢?

就是当前目录里面的文件只有文件拥有者或者超级用户才可以删除,other删除不了。

Linux 软件包管理器 yum

Linux常见的安装方式:

  1. yum安装 (centos) - 常用
  2. rpm安装包安装
  3. 源代码安装 - 常用

我们这里主要讲解yum如何使用:

以下载lrzsz为例子:

yum install -y lrzsz

删除:

yum remove -y lrzsz

这里的 -y 表示不再询问,如果不加上这个的话,当安装的时候会有个询问是否安装。

而我们Linux中会有一个yum源,当我们yum,install某个程序的时候,会默认去这个源中去找对应的下载链接然后进行下载。而为什么我们只需要yum就可以直接下载到 我们的Linux系统中呢?因为有人已经帮你编译过源代码了,然后放入一个服务器当中,当我们使用自己的服务器的时候使用yum下载,会默认从源中的下载地址然后直接去服务器上下载已经编译好的可执行程序等等。

这里我们也可以看一下我们的yum源

cd /etc/yum.repos.d/

在这里插入图片描述

然后打开这个文件,里面会有各种地址。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值