Linux [权限]

您所在的位置:网站首页 目录的基本权限有哪些内容组成 Linux [权限]

Linux [权限]

2023-06-03 16:06| 来源: 网络整理| 查看: 265

Linux 权限 Linux用户分类切换成root方法例子 切换成普通用户方法例子 短暂提权 什么是权限理论知识展示区域 修改权限(1)修改文件属性1. 采用 w/r/x的形式2. 采用八进制的形式 (2)修改身份1. 修改拥有者2. 修改所属组3. 修改拥有者 && 所属组 问题区问题1问题2问题3

Linux用户分类

通过前面的学习, 我们知道了Linux下的用户分成两类:

超级用户(root): 一般不受权限的限制其他用户: 会受到权限的限制 切换成root 方法

su — — 身份切换过去, 但是家目录不变(并不是重新登录了一下) su - — — 家目录发生变化, 重新登录一下

例子

我们发现: su(-) 默认指令就是切换到root的由普通用户切换到root, 都要输入root的密码回退到上一个用户 — — exit 或者 ctrl + d 切换成普通用户 方法

su 普通用户

由root切换到普通用户 — — 不用输入密码由A普通用户切换到B普通用户 — — 需要输入B用户的密码 例子

通过上面两种用户的相互切换, 我们不难发现: root用户的权限 > 普通用户的权限 短暂提权

相信, 以后工作的大部分时间我们用的都是普通用户 那么如果有一种需求 — — 需要短暂使用root用户权限, 那么我们该怎么办?👇👇👇 sudo 指令 — — 对这个指令使用root用户的权限

🗨️这个的使用结果为什么事失败的啊??

因为我们现在都是用 adduser 来创建用户, 然后系统不信任你⇒ 因为你没有在系统信任的白名单中(在一个特定的配置文件中) 🗨️那么失败的原因是理解了. 为什么要输入的是 mutong用户的密码 啊? 因为用户如果已经在系统信任的白名单中⇒ 那么输入 mutong用户的密码来获得短暂提权, 这不是理所应当的嘛 什么是权限 理论知识

🗨️日常生活中, 我们所熟知的权限是什么? 包含哪几个方面?

分析问题, 我们要全面的进行分析, 从特殊中总结出共性 一般是从 主体 和 客体这两个方面进行分析 主体: 第一个例子: 当我们观看腾讯的VIP视频, 被告知没有权限去观看. ⇒ 人的身份/角色 客体: 第二个例子: 我们能不能把练习纸当做面包吃掉用来填饱 ⇒ 事物的原本属性 ⇒ 日常生活中的权限总结起来就是 人的身份/ 角色 + 事物的原本属性 由于, Linux下一切都是文件⇒ 事物的属性 ⇒ 文件的属性

⇒ Linux下的权限 = 人的身份/ 角色 + 文件的属性

🗨️那么身份有哪一些? 文件有哪些属性呢?

在Linux中: 用户的身份有三种: 拥有者, 所属组, 其他 文件的属性有三种: 可读(r), 可写(w), 可执行(x)

🗨️前面说用户分类有root 和 普通用户; 现在身份的划分又有 拥有者, 所属组 和 其他. 这很冲突啊?

现在我们这样想: 普通用户是我们学生, root用户是校长 但是不管是学生还是校长, 在日常生活中都有着不同的角色, 比如父亲, 孩子… … 在Linux中, 身份只有这三种可能性. 不管是普通用户还是root用户, 都会有这三种身份的可能性. ⇒ 这不是冲突的, 可以说是身份是用户的一种补充吧~~ 身份 和 文件属性都已经明白了, 那么在哪里可以看我这个用户有哪些权限呢?

🗨️拥有者, 所属组看见了, 其他呢?

考虑到其它 太多了⇒ Linux采用的是 if (拥有者) else if (所属组) else (其它) 这样的一个逻辑链路来进行 认定用户身份的.

🗨️上面 muyu 即是拥有者 也是所属组, 那么权限是两个叠加吗?

上面的例子中, muyu即是拥有者也是所属组. 拥有者的权限只有 r , 而所属组的权限是 r w 按照我们的猜想, 应该是权限的叠加 ⇒ 那就意味着muyu 的权限是 r w 当我们 查看该文件时, 是OK的; 但是当我们写一段东西到该文件就不行了 ⇒ 其实, 具体的一个用户, 权限的选择只能是一个. 身份是存在着优先级的 拥有者 > 所属组 muyu该用户进行身份认定的时候, 看到有拥有者, 就不用看后面的了. 展示区域

在上述例子中: muyu — — 拥有者 r w root — — 其它 r mutong — — 其它 r muyu可读可写, mutong可读不可写这都很正常 root 也可读可写 ⇒ 这就突出了root超级用户的强大, 一般不受权限的限制 普通用户会受到权限的限制

修改权限

权限是由 身份/角色 和 文件属性两部分组成. 所以, 修改权限也是这两个方面的修改

(1)修改文件属性

由于文件权限的特殊表示方法, 故修改文件权限也有两种方法

1. 采用 w/r/x的形式

在这个方法里: 拥有者 u (user) 所属组 g (group) 其它 o (other)

chmod u/g/o +(-) 文件

特例: chmod a +(-) u/g/o 文件

通过上图的结果可以看出:chmod [一个整体] 文件

🗨️我有一个疑问: 其它(普通用户)肯定修改不了, 那么所属组可不可以进行修改呢?

合作 未被允许 — — 说明所属组不能进行修改 拥有者 和 root用户 才可以进行文件属性的修改 2. 采用八进制的形式

🗨️为什么可以采用进制的形式?? 为什么是八进制而不是其他的进制??

文件属性有着两大特点: 每个位置的含义都是确定的.即 顺序都是 r w x每个位置的选择只有两种 Y or N, 这种也可以看作每个位置的选择只有 1 或 0 ⇒ 故可以采用 进制的方式 又因为三个为一组, 进制表示最小为 000, 最大为111 ⇒ 是八进制 ⇒ 故修改文件的属性可以采用八进制的形式.

(2)修改身份

身份包括 三种:拥有者, 所属组, 其它 但是我们修改身份的时候只用修改两种: 拥有者 和 所属组 其它不用修改 ⇐ 一个用户不是拥有者, 不是所属组, 那么就是其它喽

1. 修改拥有者

指令是 chown

我们先尝试直接用 chown来进行操作👇👇👇 我们想把拥有者的身份给 mutong 用户, 但是被告知 合作未被允许 为什么会出现这种情况?? 那我们该如何修改拥有者的身份呢?

现实生活中, 如果我们要把一个东西给另一个人, 方式有两种 尊重对方的选择 ⇒ 这种在Linux中不大可能实现强制给 ⇒ 这种就是root行为啊 ⇒ 那么不同的用户就有不同的选择: 1. 普通用户, 对这条命令进行暂时提权sudo — — sudo chown 用户(后) 文件名 2. root用户 — — chown 用户(后) 文件名 2. 修改所属组

指令是 chgrp

我们也先尝试直接用 chgrp来进行操作👇👇👇 发现这个是跟上面是一样的结果. [总结]:

普通用户 — — sudo chgrp 用户(后) 文件root用户 — — chgrp 用户(后) 文件

3. 修改拥有者 && 所属组

指令是 chown 同时改变拥有者 和 所属组:

普通用户 — — sudo chown 拥有者(后):所属组(后) 文件root用户 — — chown 拥有者(后):所属组(后) 文件

问题区 问题1

🗨️ 为什么创建的普通文件的起始权限是 664, 目录文件的起始权限是 775 ?

先插一句: 普通文件的起始权限是 666 目录文件的起始权限是 777

在Linux中存在一中 名叫 权限掩码 的东东, 记作 umask. 它存在的意义就是 在权限掩码出现的权限, 在文件的最终权限是不会出现的 先来看一下权限掩码吧👇👇👇 在我的centos版本下, 权限掩码默认值是 0002. 其实可以把它拆解成两个部分 第一个0 + 后面的八进制表示 即umask就是用八进制来表示的, 第一个0可以视为无用 ⬇️⬇️⬇️ 那么我们就把上面的问题回答清楚了 其实 umask是可以修改的 — — umask 值(后) 问题2

🗨️拥有者muyu 的d1 文件有 r属性, 为啥进不去d1目录呢?? 目录文件的各个属性又都是什么啊??

如果我们把拥有者的 x 权限放开呢?? 在这里插入图片描述 如果我们把d1 的 r 关闭 x 打开 呢? 通过上面的三组例子, 不难看出: x权限关闭, r权限打开 — — 进不了d1 目录文件里面, d1 目录里面的内容虽然没有权限查看(因为进不去啊), 但是还是输出里面的内容 test.c x权限打开 — — 可以进入d1 目录文件里面 r权限关闭 — — 查看不了d1 目录里面的内容 ⇒ 不难得出以下的结论:

目录文件: r — — 是否允许用户查看指定目录下的内容 x — — 是否允许用户进入目录 w — — 是否允许用户在当前目录下进行创建, 修改, 删除👇👇👇

在这里插入图片描述

问题3

🗨️如何创建一个共享文件, 使得多个用户可以共同编辑?

首先, 先确定文件创建的位置 我们首先想到的是每一个用户的家目录下是否可以⬇️⬇️⬇️ 我们发现每一个用户的家目录下 拥有者 和 所属组 都是用户本身 且 只有拥有者的权限是全开的, 除了拥有者其他的身份的权限都是关闭的 ⇒ 故不能在每一个用户的家目录下创建一个共享文件 既然每一个用户的家目录不能, 那么根目录肯定可以⬇️⬇️⬇️ 我们可以看出 根目录的 拥有者 和 所属组都是 root用户 ⇒ 所以 跟目录下创建一个共享文件必须是 root用户 OK, 我们先在根目录下创建一个共享文件看一下⬇️⬇️⬇️ 这时候我们进行一些基本操作 这个时候, muyu用户跟mutong用户有了矛盾, 不想让mutong用户有test.c的相关权限⇒ 这导致mutong用户想删掉test.c文件 muyu用户这个时候就比较恼火, 我把mutong的所有权限都关闭了, 为什么还会删掉我创建的文件啊?? muyu 百思不得其解? 聪明的你是否有了答案~~ 删除一个文件不是由文件本身的权限决定的, 是由它所在的目录的权限决定的 (文件所在目录的 w权限) 让我们来看看 temp目录的权限👇👇👇 原来 其它的 w 权限是开的啊~~ 这个时候, muyu用户就请求root用户把 其它的 w 关闭 哦豁, 我么发现这样, 我们也不能 创建, 修改文件了 芭比Q了, 这样就是去共享的意义了啊 ⇒ 基于有以上的需求: 1. muyu用户想关闭掉 mutong用户的删除权限 2. 但是删除一个文件不是由文件本身的权限决定的, 是由它所在的目录的权限决定的 `(文件所在目录的 w权限) 3. 关闭目录的 w权限就会导致失去共享文件的意义

t粘滞位应运而生⇒ 给目录设置一个 粘滞位, 只允许拥有者 或者 root用户才能删除目录下的文件

其实 根目录下就已经存在一个共享文件 tem 在这里插入图片描述

把话讲透,可以骂娘,不准记仇



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3