Linux基础——Linux权限详解

Linux基础——Linux权限详解

前言:本篇开始我们要对Linux进行更深入的学习了,让我们来进入新篇章:Linux的权限理解!

首先让我们来初步了解一下本篇的内容:

本章主要内容:

理解shell外壳和Linux内核了解普通用户和超级用户的区别理解文件对应的三个权限修改文件权限或拥有者/所属组了解目录文件和普通文件的区别理解默认权限以及权限掩码1. shell命令以及运行原理Linux操作系统准确来说是:Linux内核+Linux外壳+配套程序

Linux外壳也就是shell

代码语言:javascript代码运行次数:0运行复制Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通 shell存在到底有何意义,为什么要有shell?

首先:命令行解释

因为Linux内核的设计非常复杂,用户无法直接向Linux内核进行沟通,更不能直接读懂内核执行完命令的结果,所以shell外壳充当"媒婆"这一角色,来进行用户和内核沟通上的翻译。

外壳将用户输入的指令翻译给内核处理

内核处理后得到的结果翻译给用户

其次:保护内核

有时用户想要内核执行的命令内核无法做到,因此指令根本不会"打扰"内核,它会在shell外壳进行翻译时就被驳回。

注意:shell是对所有命令行解释器的统称

Linux下的shell外壳是bash

windows下的shell外壳是图形化界面

2. 用户2.1 普通用户和超级用户一个Linux账号只有一个超级用户:root

创建的其余用户都叫做普通用户

如果想在Linux里切换用户我们可以:

指令:su 用户名

注意:超级用户切换为普通用户不用输密码

普通用户切换为root或其他普通用户需要密码

2.2 指令提权当我们现在是普通用户,但需要root用户的权限才能使用的指令,来回切换很不方便。我们可以:

指令:sudo 需提权的指令

代码语言:javascript代码运行次数:0运行复制sudo 可以帮我们提权使用指令,但是如果此用户没有被添加到sudoers白名单sudo就无法提权。(先简单了解)3. 文件在我们最初接触Linux使用ls -l查看文件时,我们只考虑了文件名称,在文件名称前的那些代表什么呢?

让我们来了解一下这三者。

3.1 角色属性在文件属性后的表示角色属性

前者是代表文件的拥有者

后者是代表文件的所属组

拥有者代表这个文件的创建者

所属组代表此组组长

注意:在除了拥有者和所属组之后,还有第三个角色other,

other表示除了拥有者和所属组的其他人

当我们在普通用户目录下用root创建文件拥有者就改变了。

3.2 文件类型在文件属性的第一个表示的是文件类型

现阶段一般常见的都是文件夹d和普通文件-

3.3 文件的读写权限

以我们刚刚创建的文件为例:

此文件:

拥有者:可读可写不可执行

所属组:可读不可写不可执行

other:可读不可写不可执行

下表能让我们更好理解

3.4 读写权限的进制表示关于权限我们还可以转化成进制表示:

此处的0,1:有权限代表1,没有权限代表0。

再用刚刚创建的文件为例:

这就是用进制来表示文件的权限

4. 文件修改4.1 文件权限的修改方法一如果我们对当前文件的权限不满意,我们可以:

指令:chmod [参数] 权限 文件名

再用刚刚创建的文件为例:

我们给文件的所有用户加上w权限

注意:只有文件的拥有者或root可修改文件权限

当没有读取权限就去读取时会报错

这里我将所有用户的读取权限全部取消,但是在root用户下我们依然可以读取

因此:权限不能限制root的访问,因为root是超级用户!!!

方法二修改文件权限时,除了使用+,-,=号还可以用八进制进行修改

指令:chmod 八进制数 文件名

我们依然使用pxt.txt文件来示范:

用八进制实则和二进制有关,将666转化为二进制就是110 110 110

所有人的读写权限都存在,而执行权限无。

4.2 修改文件的拥有者/所属组修改拥有者 指令:chown 用户名 文件名

修改所属组 指令:chgrp 用户组名 文件名

注意:普通用户是无法把自己的文件给另外一个用户的,因为这很容易出现文件的泄露影响安全,只有root账号或者使用sudo提权才能将文件的拥有者/所属组修改!

5. 文件夹权限文件夹的权限和普通文件权限有一定差异

r : 用户能否查看文件夹下文件的信息

w : 用户能否在此文件夹下创建/删除文件

x : 用户能否进入此文件夹

在文件夹NULL只有拥有者有创建删除文件的权力,让我们用除root的用户创建时:

因为权限被限制,我们无法创建文件!

6. 默认权限以及权限掩码6.1 默认权限当我们同时创建几个文件和目录时:

我们发现目录之间,文件之前的权限都是一样的:

因此:

目录的默认权限为:7 5 5

普通文件默认权限: 6 4 4

文件的权限是由两个因素决定

文件的起始权限文件的权限掩码一般情况下

目录的起始权限为:7 7 7

普通文件的起始权限为: 6 6 6

6.2 权限掩码我们可以用指令来查询文件的权限掩码:

指令:umask

我这里默认为022

用起始权限777-022=755,目录的默认权限正好为755

而起始权限666-002=644,普通文件的默认权限正好为644

权限掩码计算文件的默认权限并不是简单 = 起始权限 - 权限掩码!

真正的计算方法是:最终权限=起始权限&(~权限掩码)

直接记忆可能有点难,我们转化记忆。

将起始权限和权限掩码都转化为二进制再按位比较权限掩码为1的地方,最终权限都为0权限掩码为0时,不变修改权限掩码在Linux中权限掩码是可以修改的:

指令:umask 八进制数

当我将权限掩码修改为771时,创建新文件test3.c时,就只有other有读写权限

7. 总结拓展

在Linux中的权限十分分明,保护也非常到位,除了root外其他用户并不能直接拿走你的文件,也不会修改删除你的文件。

拓展:粘滞位

如果只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。如果是这样,那就不可想象了!

因此在Linux中引入:粘滞位

这样既可以让他使用文件但不会被删除

代码语言:javascript代码运行次数:0运行复制粘滞位是一种权限位,它可以应用于目录上,用于限制用户对其中文件的删除。当一个目录设置了粘滞位后,只有文件的所有者或者超级用户可以删除该目录下的文件,其他用户无法删除。这样可以防止用户在共享目录中意外删除其他用户上传的文件。 指令:chmod +t

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

如有兴趣,可以自行深入了解!蟹蟹大家支持!

相关推荐

扠腰的解释及意思
28365备用网址官方网站

扠腰的解释及意思

09-07 👁️ 3183
龍息神寂裝備圖鑑 ​龍息神寂有哪些裝備
S365网络超时

龍息神寂裝備圖鑑 ​龍息神寂有哪些裝備

07-16 👁️ 136
脑子里的水是哪里来的?为什么会脑积水?
樊振东5年拿4个世界杯冠军 国际乒联都夸樊振东太全面了
28365备用网址官方网站

樊振东5年拿4个世界杯冠军 国际乒联都夸樊振东太全面了

07-21 👁️ 8124