Linux基础——Linux权限详解

本文详细介绍了Linux权限系统,包括shell的作用、用户(普通用户与超级用户)、文件的权限结构、修改权限的方法、文件夹权限、默认权限和权限掩码,以及粘滞位的概念。通过实例演示,帮助读者更好地掌握Linux权限管理。
摘要由CSDN通过智能技术生成

前言:本篇开始我们要对Linux进行更深入的学习了,让我们来进入新篇章:Linux的权限理解!
在这里插入图片描述
首先让我们来初步了解一下本篇的内容:
在这里插入图片描述

本章主要内容:

  1. 理解shell外壳和Linux内核
  2. 了解普通用户和超级用户的区别
  3. 理解文件对应的三个权限
  4. 修改文件权限或拥有者/所属组
  5. 了解目录文件和普通文件的区别
  6. 理解默认权限以及权限掩码

在这里插入图片描述


1. shell命令以及运行原理

Linux操作系统准确来说是:Linux内核+Linux外壳+配套程序
在这里插入图片描述
Linux外壳也就是shell

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 需提权的指令

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

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

  1. 文件的起始权限
  2. 文件的权限掩码

一般情况下
目录的起始权限为:7 7 7
普通文件的起始权限为: 6 6 6


6.2 权限掩码

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

指令:umask

在这里插入图片描述
我这里默认为022
用起始权限777-022=755,目录的默认权限正好为755
而起始权限666-002=644,普通文件的默认权限正好为644

权限掩码计算

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

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

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

  1. 将起始权限和权限掩码都转化为二进制
  2. 再按位比较
  3. 权限掩码为1的地方,最终权限都为0
  4. 权限掩码为0时,不变

在这里插入图片描述


修改权限掩码

在Linux中权限掩码是可以修改的:

指令:umask 八进制数

在这里插入图片描述
当我将权限掩码修改为771时,创建新文件test3.c时,就只有other有读写权限

7. 总结拓展

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


拓展:粘滞位

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

在这里插入图片描述

因此在Linux中引入:粘滞位
这样既可以让他使用文件但不会被删除

粘滞位是一种权限位,它可以应用于目录上,用于限制用户对其中文件的删除。当一个目录设置了粘滞位后,只有文件的所有者或者超级用户可以删除该目录下的文件,其他用户无法删除。这样可以防止用户在共享目录中意外删除其他用户上传的文件。

指令:chmod +t

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

如有兴趣,可以自行深入了解!蟹蟹大家支持!
在这里插入图片描述

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值