Linux--权限讲解

article/2025/8/29 21:46:51

文章目录

  • 前言
  • 一、什么是shell外壳程序?
  • 二、为什么有shell外壳程序?
  • 三. Linux的用户基本介绍
  • 四. 用户间的相互转换及权限的索取
  • 五. 什么是权限?
  • 六. 权限的具体分类
  • 七. 文件权限属性的改变和‘人’的改变
  • 八. 为什么要有权限?
  • 九. 显示权限的由来和umask
  • 总结


前言

开始讲权限了,知识点不难,只是需要理解其本质,比如:为什么要有权限?什么是权限?


一、什么是shell外壳程序?

通俗地说是命令行解释器,使得我们和操作系统能够更简便地交互,比如我们可以看到我们输入进去的命令和执行的结果还有命令行的提示;

二、为什么有shell外壳程序?

  1. 用户是不善于和操作系统打交道的,因为我们直接去和操作系统交互操作的话是要有比较大的难度,要专业人员才能够与操作系统更好地交互;要是让我们的手机使用代码操作我们有好的体验吗?
  2. 变相保护操作系统;
    对于非法的指令,shell直接拦截,不会传递给操作系统进行操作,进而变相保护了操作系统;
  3. 而且我们看上去是shell在进行工作,其实是shell的派生子进程进行与用户和操作系统进行交互,也避免了shell出问题进而影响其它指令的进行;这个我们后面会着重讲,现在了解一下;
  4. 我们的shell外壳的命令行和Windows窗口是一样的,只不过是把命令行换成了可视窗口而已,相当于用户操作窗口,而窗口就是shell外壳,直接与操作系统交互,而不是窗口指令转换成命令行的形式再与操作系统交互,这个是错误的想法!!!

三. Linux的用户基本介绍

  1. 超级用户:root;
    可以再Linux下几乎可以做任何事,而不受权限约束;
  2. 普通用户:除了root的所有用户都是普通用户;
    普通用户有权限约束,再Linux下可以做有限的事情;
  3. 超级用户的命令行提示符是“#”,普通用户的命令提示符是“$”。

四. 用户间的相互转换及权限的索取

  1. 普通用户转变成root用户;
    使用su或者 su- 命令;
    两者的区别是使用su- 会直接转换成root用户时直接再家目录上,而使用su则所处目录不变;然后输入完su命令后会要你输入root的密码,注意:这个时候的密码是不外显的,我们什么都看不到,相当于把 * 变成了空格;
  2. root用户转普通用户;
    直接su + 普通用户的名字 (xxx);就完成了,不用密码,就是那么牛逼!!!
  3. 普通用户提权root
    普通用户要有root的权限,但是不转变成root用户该怎么做?
  4. 使用sudo命令,在我们要执行的命令前面加sudo就行了,注意加个空格,不要连在一起了!!!还有就是使用这个命令我们需要输入我们自己的密码;为什么?
  5. 因为这个命令执行后,在几分钟的时间里我们不用再输入密码,直接使用sudo命令执行root权限的命令;和root用户几乎没有差别,那么这样不是谁都可以搞了?所以这个要条件的!!!
  6. 我们要让root相信我们不会乱搞,才可以让我们所以这个命令,所以前提要设置一下root相信我们这个用户;后面会教怎么设置,现在了解一下;设置完成后,为了让我们使用较少的步骤就可以提权,所以输入sudo命令后输入我们自己的密码就提权完成;

五. 什么是权限?

  1. 我的理解就是一些事情是否可以被谁做?这里有两个值得我们注意的:”谁“和”做“两个字;
  2. 权限限制的肯定第一个是一个人或者一些人;这个” 人“ 就是”谁“,而”做“呢?想一想,我们要做的事情本身是否带有属性;比如一个看电影的软件可以买衣服等等其他东西吗?买东西的软件可以打游戏吗?这个就是事物本身的属性,属性之外的谁都没有权限;
  3. 所以权限是 人+ 属性;而Linux下文件的权限就是由人+文件属性组成;

六. 权限的具体分类

1.人具体分的话就是角色的分类,权限在限制人的时候,不是因为你是谁而限制或者不限制你,而是你的身份角色决定了你的权限;
2. 文件中人的角色分成三个:拥有者,所属组,其他人;文件的拥有者,与其他人我们知道,但是这个所属组什么鬼?其实就是拥有者为了放开权限给指定的一个或者一些人也可以看文件操作文件这样的,但是除此之外的人都不可以,所以要这些人都有看和读的权限,这些特性的人也叫做所属组,也就是一些可以相信的人拥有一些特殊权限,和其他人区别开来;
3. 文件的属性也是三个,读,写,执行;
对应的字母是r,w,x;

在这里插入图片描述

  1. 看上面最左边开始的10个字符,第一个代表的是文件的类型,- 表示普通文件,d 代表目录,c代表字符设备文件-键盘,显示器这样的,b代表块设备-磁盘这样的;l 代表链接文件,像可执行文件这样的;p是管道文件,上个Linux博客上介绍过管道;
  2. 这里重要的是 -普通文件,d目录,p管道文件,l链接文件;
    后面会着重讲p,l两种文件类型的哈;
  3. 上面介绍了第一个字符,现在先介绍后面的,前面10个字符还剩下9个后面着重介绍;然后后面的1现在不讲;第一个root是文件拥有者,第二个是所属组;然后是文件大小12,然后是文件最新创建时间或者修改时间;最后是文件名;
  4. 注意:Linux下操作系统是不以后缀区分文件类型的,不像windows的系统文件是以后缀区分文件;但是Linux下的小程序工具比如gcc重要的是以后缀区分的,这两个并不冲突;还有就是有这样一句话:Linux下一切皆文件;

七. 文件权限属性的改变和‘人’的改变

  1. 看左边剩下的9个字符,分成三份,每份三个字符,代表了拥有者,所属组,其他人的权限,每个人的文件权限有三种,读,写,执行;但是具体有没有对应权限还要看文件是怎么定义‘人’的角色权限分配的;

在这里插入图片描述

  1. 像前面三个字符(从第二个字符开始)是拥有者的文件权限,比如test1.txt文件中就是读,写权限,没有执行权限,注意:没有权限就是一个-,然后是所属组的权限,只有读权限,其他人也是一样只有读权限;
  2. 看一下增加或者减少权限的方法;
    chmod u/g/o± rwx +文件名 就是增加或者减少权限的命令;增加权限还得看文件属性,不能把本身没有的属性还增加过去;

在这里插入图片描述

  1. 一起加减权限是:chmod a± rwx 文件名;
    或者分开搞就加逗号就行了;chmod u+w,g-w,g-w test1.txt
  2. 还有一种方法就是一起改变权限的八进制法;
    因为每种角色权限都是三个,而且有的话可以看成1,无就是0,也就是机器语言中的0,1,然后三个权限就组成八进制;比如:
    chmod 777 test1.txt 就是每个角色的每个权限都是1,代表了满权限;
    chmod 444 test1.txt 就是每个角色只有读权限;
    chmod 644 test1.txt 就是拥有者有读和写权限,所属组和其他人就是只有读权限;
  3. 改变文件角色;
    我们可以把文件的拥有者给别人,前提你是拥有者!!!,也可以把所属组给别人,但是没有给其他人的这种操作哈,因为没必要!!!不过这里要注意:把文件给别人是要经过别人同样的,所以我们直接还是提权或者root用户直接给都可以,反正就是强制给,懒得等对方同意;
    sudo chown xxx test1.txt
    sudo chgrp xxx test1.txt
    这样就把文件角色给别人了,当然还可以提权一样的方法要回来的哈;
    还有把拥有者和所属组都给别人就是 sudo chown xxx:xxx test1.txt
    还要注意:test1.txt我这里是具体的,到时候是随便你的文件名的;

八. 为什么要有权限?

因为要对事物的保护和不妨碍其他人的权限利益;
对你的限制是保护事物,要是你不会破坏事物,那么你就有相应的权限,而防止因为你而破坏其他人原有的权限;
总的来说就是:为了我们系统进行安全管理;

九. 显示权限的由来和umask

  1. 我们看到的命令行中的权限是怎么来的?为什么不同我们的权限不同?
  2. 这个需要我们先了解一下umask,这个叫做权限掩码,和初始权限配合使用,在权限掩码有的在最终权限上都没有!!!在c语言里就是&的关系,先让umask取反,再和初始权限&一下就是最终权限!!!
  3. 初始权限:目录是满权限,按照八进制看就是777了,而普通文件就是666,都没有执行权限哈;
  4. 如果umask是0002,这个是八进制的哈,开头一个0代表八进制哈;
    先取反得到umask其他人没有写的权限,然后每个角色的权限都有,然后再和初始权限777或者666&一下得到最终权限;
  5. 这里的umask可以查看,直接使用umask命令就可以看到了;还有就是改umask,直接umask + 自己要定的权限,就改了umask;

在这里插入图片描述

最后一个问题:我们的最初权限为什么目录是777满权限,而普通文件是666呢?
因为我们去权限的时候会发现,对于目录来说,去掉x也就是执行权限的话目录就进不了了,而普通文件是不需要进入执行的,使用初始普通文件是666,因为所有目录被创建出来都是要被能进入的,所以要可进入的执行权限!!!


总结

权限的讲解暂时就到这里,敬请期待后面的知识吧!!!


http://chatgpt.dhexx.cn/article/O8j8oAI9.shtml

相关文章

Linux权限的基本知识

本文已收录至《Linux知识与编程》专栏! 作者:ARMCSKGT 演示环境:CentOS 7 目录 前言 正文 权限是什么? Linux权限的划分 Linux用户的切换命令 Linux文件权限 Linux文件类型 Linux文件权限 Linux角色划分 文件权限的访问…

【Linux】权限管理

目录 一.用户在使用Linux系统时的权限 1.概念 2.用户权限切换(角色切换) 1.普通用户切换root 2.root切换普通用户 二.用户在使用文件或目录时的权限 0.如何区分是文件还是目录? 1.拥有文件或目录权限的三个身份 2.文件或目录的权限 3.如何修改权限 &#…

【Linux】——权限详解

Linux权限的概念 在学习Linux权限之前,我们需要首先了解一下关于用户的知识。在Linux下有两种用户,分别是root用户和普通用户。root用户就好比充钱的VIP一样,可以在Linux下做任何事情,几乎不受限制,我们也称其为超级用…

linux中权限详解,linux 权限详解

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者 用ls…

Linux文件权限

Linux文件权限 Linux下一切皆文件 Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。 普通文件是文件。 目录(在win下称为文件夹)是文件。 硬件设备(键盘、硬盘、打印机)是文件。 Linux下有两种用户:超级用户(root&…

Linux权限管理

1.ACL权限 1.1ACL权限简介与开启 所有者、所属组和其他人的权限不够用,专门为用户设定独立的权限 #查看分区ACL权限是否开启 dumpe2fs -h /dev/sda3 如下图:蓝框就表示该分区具有acl权限 #临时开启分区ACL权限 mount -o remount,acl / #重新…

【Linux】一文掌握Linux权限

环境:centos7,腾讯云服务器 Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹 前言 权限 一词相信大家都不陌生,与我们的生活密切相关。小区里的门禁制度、公司里的管理制度、学校里的校规规定、甚至是社交平台上的一些…

Linux权限理解

一.Linux权限概念 Linux 下有两种用户:超级用户( root )、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通…

Linux权限全面解析 (欢迎各位Linux选手看过来,读到就是赚到)

目录 1.权限是什么 1.1生活实例理解权限 2.Linux下的权限 2.1Linux下的用户类别与事物属性 2.2介绍用户类别的具体意义 2.3具体实验 2.4文件类型简介 2.4.1 文件类型分类 2.4.2 文件类型依据 3.修改文件rwx权限 4.修改文件的owner,group 5.用户切换方式讲解 6.目录…

【Linux】Linux权限

Linux权限管理 文章目录 Linux权限管理1、Linux下权限的概念(1)用户权限(2)文件权限 2、权限的相关命令(1)用户切换超级->普通普通->超级 (2)用户提权(3&#xff0…

Linux权限详解

目录 1. 什么是权限 2. Linux上的用户 3.Linux权限管理 3.1 文件访问者的分类(人) 3.2 文件类型和访问权限(事物属性) 3.3 文件权限值的表示方法 3.4 文件访问权限的相关设置方法 chmod命令 chown指令 chgrp指令 umask指…

Linux用户权限

Linux用户权限 一、Linux权限的概念二、Linux文件权限管理1 、文件访问者的分类2 、文件类型和访问权限3、文件访问权限的相关设置方法 三、Linux目录的权限1、粘滞位 四、Linux权限的总结 一、Linux权限的概念 Linux下有两种用户:超级用户(root&#xf…

ESP32的CAN通信

目录 一、ESP32的CAN通信说明1.1、片内外设1.2、CAN库的查找1.3、MCP2515和SJA1000介绍1.4、CAN库的安装1.4.1、先下载库,再导入到arduino IDE中1.4.2、通过“库管理器”安装。 二、硬件说明2.1、硬件准备2.2、硬件连接 三、代码调试3.1、打开示例3.2、修改代码3.3、…

DSP28377S_CAN通信

CAN通信 CAN通信的由来CAN通信格式CAN通信配置实验验证结束语参考资料目录 CAN通信的由来 为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。CAN属于现场总线的范畴&a…

【CAN】CAN通信基础

1、CAN 总线与 CANopen 概述 CAN(Controller Area Network)总线是BOSCH为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,通信介质可以是双绞线、同轴电缆或光导纤维。 通信速率可达 1MBPS。 CAN 协议的一个…

通信接口CAN

CAN通信 目前(2021年6月)我用到的CAN电路原理图: 判断电路有没有接好,其中一个标准就是,测量接入的电阻阻值是不是60Ω。上图两个60.4Ω之间,可以接一个电容到GND。 1. Bit Timing(位时序) 参考连接 …

STM32之CAN通信

23.1关于 CAN 23.1.1 CAN 电气特性与协议 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一。其特点是可拓展性好&#xff0…

FPGA实现CAN通信

FPGA实现CAN通信 1、CAN协议物理层和协议层 2、传输的波特率 3、FPGA实现思路 4、FPGA实现代码 1、CAN物理层和协议层 CAN与串口类似,都是异步通信,利用两根差分线来进行信号的传输。 在多节点进行数据传输时主要分为遵循ISO11898标准的高速短距离闭环形…

关于CAN通信速率设置

一、 CAN时钟周期(Tq)2*晶振时钟*BRP(波特率预分频值 baudrate prescaler) 一个CAN时间称为一个时间量子 Tq 1)同步段(Synchronization Segment):1个Tq,tSS 2&#x…

nano的CAN通信

我买的是微雪的树莓派用的SPI转CAN。现在用在jetson nano上。我看了一下俩模块的芯片用的都是一样的,引脚也都对得上,所以我就打算拿这个模块给nano做can通信。 具备CAN功能,使用SPI接口CAN控制器MCP2515,搭配收发器SN65HVD230。 …