前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】权限篇(一)

【Linux】权限篇(一)

作者头像
zxctscl
发布2024-01-23 08:33:12
1690
发布2024-01-23 08:33:12
举报
文章被收录于专栏:zxctscl个人专栏

1. 前言

在之前的博客中已经学习了一些相关的操作,这次来分享的是与Linux的权限有关的一些笔记。 在正片开始之前,先来讲讲外壳(shell)。

2. shell

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。

我们知道:

  1. 在Linux上面,大部分指令就是文件。
  2. 用户在执行某种功能的时候,不是直接让操作系统执行对应的指令的,而是先交给外壳程序。 这句话是什么意思呢?

实际上用户是不能直接访问操作系统的,一般在操作系统外面都会封装一层外壳程序,也就是shell程序。

最典型的外壳有两种,一种是图形化界面,另一种是命令行。有的将图形化界面直接写道操作系统里面,比如windows。 就像我们电脑在开机的时候,最后一步就是在加载图形化界面。

shell是什么呢? 介于用户和操作系统之间的软件,也就是命令解释器。 它的作用是:

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

那为什么会有shell?

  1. 用户不善于和操作系统(OS)之间交互。
  2. shell外壳的存在,可以对请求进行合法性检查,变相的保护OS。

bash不会直接执行命令,它会创建一个子进程,让子进程去执行。 这个子进程会帮用户进行命令行解释。 而真正的bash只需要等待就行。

总结: 对于大部分操作系统,在它的软件外层还有一个外壳层。这个外壳层通常进行命令行解释。 在用户和操作系统之间加一层软件层,主要将命令翻译给核心,同时将对应的操作系统执行结果翻译给用户。 其中这个外壳程序就叫做shell外壳,常见的外壳有图形化界面和命令行。

shell和bash有什么区别呢? 也就是说shell是所有外壳程序的统称,bash是具体的一款外壳程序。 命令行解释器在不同的操作系统中,有不同的种类,像sh。

3. 权限介绍

Linux下有两种用户:超级用户(root)、普通用户。

  1. 超级用户:可以再linux系统下做任何事情,不受限制,命令提示符是“#”。
  2. 普通用户:在linux下做有限的事情,普通用户的命令提示符是“$”。

3.1 什么是权限

权限就是通过一定的条件来拦住一部分人,给一部分人权利,来访问某种资源。

就和门禁和vip的道理相同。 权限的有无,就是能或者不能的问题。

3.2 权限的本质

  1. 权限和人有关,就像在视频网站上有的视频只能是vip才能看。
  2. 权限也与事物的属性有关,就像不能在视频网站什么刷题是一样的,它没有这个属性。

也就是说:权限=人+事物的属性有关

这个“人”,并不是指的具体某一个人,而是一种角色。 就像是在学校的校门的门禁一样,并不是说你叫张三就能进入学校,而是说,你是这个学校的学生,是这个角色,才能进学校。

3.3 Linux中的用户

Linux下有两种用户:超级用户(root)、普通用户。

我们大部分用的就是root。

在Linux中root是超级管理员,所以它不受权限约束。

那么普通用户怎么将自己变成超级用户呢? 我们先使用普通账号

将普通用户变成root,直接su,这里提示要输入密码

那么这里输入哪个的密码? 我们登录的是root当然就是输入root的密码。 所有建议普通用户和root的密码不要设置成一样的。

此时就变成了root。

那么怎么退回普通用户呢? 直接ctrl+D

就变成普通用户。

普通用户变成超级用户还有一种方式就是su -

此时输入的还是root的密码,但是多了一条提示信息。

susu -的区别是什么? su是就是直接将当前角色的身份变成root。 su -是相当于是让root重新做登录了。 此时路径会发生变化,直接到root的家目录下面了。

但是如果我们单纯的用su,所处的路径不会发生变化。

如果要将普通用户切换为root,建议直接su就行。

如果超级管理员想变成普通用户怎么办呢?

如果想变成指定的用户,直接su+指定用户就行。

退出直接ctrl+D就行了。

如果不想直接变成root,但想以root的身份执行一个工作该怎么做? 在创建的文件前面加sudo

这里输入的是普通用户自己的密码。 这种操作叫做指令提权。

那为什么sudo对指令进行提权的时候,输入的是普通用户自己的密码?

一般普通用户是没有权限去执行这个的,会报错。在云服务器上默认是不行的。

默认普通用户目前是无法执行sudo,在之后的学习vim,再来解决这个问题。

所以目前我们想以root的身份执行一个工作时,直接变成root就行。

3.4 Linux中文件的权限

在Linux中有三种“人”: 拥有者 所属组 other

但是我们看不见other啊? 在Linux下是有组的概念的,一般情况下自己就是一组。 other是匹配完拥有者和所属组后,剩下的不匹配的都是other了。

为什么会有所属组的概念? 举个例子;在一家公司里可能会有两组人做同时一个项目,如果这两组都在同一个服务器上做。当某一天,如果领导需要看第一组的源代码时,当放开的时候,另外一组可能会看到第一组的源代码。所以在Linux系统中就得有所属组。 当第一组组内在所属组内放开权限时候,另外一组也看不到。 所属组就是为了在多人协作的时候,更好的进行权限管理。

Linux中具体的角色是需要具体的人来扮演的。

我们会发现前边有10个字符,第一列的第一个字符,就表示文件的类型。-:表示普通文件;d:表示目录文件。

剩下的9个字,33为一组,分别对应拥有者,所属组,other。

所以说: 权限=用户角色(具体的人)+文件权限属性

对于这三个字符,所对应的位置是固定的。 没有就用-,有就对应相关那个字符。

如果有错误请指出,大家一起进步!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. shell
  • 3. 权限介绍
    • 3.1 什么是权限
      • 3.2 权限的本质
        • 3.3 Linux中的用户
          • 3.4 Linux中文件的权限
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档