【Linux】——权限详解

article/2025/8/29 22:01:58

Linux权限的概念

        在学习Linux权限之前,我们需要首先了解一下关于用户的知识。在Linux下有两种用户,分别是root用户普通用户。root用户就好比充钱的VIP一样,可以在Linux下做任何事情,几乎不受限制,我们也称其为超级用户。而普通用户一般只能在自己的工作目录下(/home/xxx)工作,以及在系统上做有限的工作。

小提示:

         换言之,所有的权限的概念都是用来限制普通用户的,而root用户几乎不受限制。因此,接下来所将的有关权限的知识主要是针对普通用户的。这时候你可能会说,那么我一直都用root用户的话,不就不需要学习权限方面的知识了吗?答案显而易见是错误的。

        因为root用户基本不受权限的限制,这样在使用的阶段就很容易出错。很有可能误删系统文件导致linux无法使用,或者破坏文件导致写好的程序影响用户的正常使用。总之,无论如何我们都应该了解Linux权限,平常也要使用普通用户操作,方便更好地掌握Linux。

 那么应该怎么切换用户呢?只需要su指令就可以了。

        Linux权限的概念也很简单,通俗来说权限就是: 某一件事情是否允许被某个人做。其中,某一件事情就对应Linux中的各种文件,而人就是指使用Linux的用户。权限就是用来约束一个人或者一个群体的。接下来我就讲从用户属性文件属性两方面谈一谈Linux权限。

Linux权限管理

文件访问者的分类

正如上文所说,权限是用来约束用户对文件的操作。那么肯定不能一下子约束所有人,或者一个人一个人地约束,因此就需要将用户分成下面三类:

  • 文件和文件目录的所有者: u---owner
  • 文件和文件目录的所有者所在的组的用户: g---Group
  • 其它用户: o---Others (除去u和g的其他人都算其他用户)

文件类型(事物属性)

文件可以分为下面几种类型:

  • d:目录
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

其中最常见的就是目录和普通文件。

基本权限

  • 读(r): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

现在我们就可以读懂ls查看文件时显示的信息了。

同时注意权限的具体到每个成员:

文件权限值的表示方法 

a.字符表示法

b.8进制表示法

因为对于权限来说只存在有和没有两种状态,所以可以用二进制表示是否有某一个权限。有该权限用1表示,无该权限用0表示,因此三个权限合在一个就可以用八进制表示了。

文件访问权限的相关设置方法

在了解权限是什么之后,接下来我开始讲解权限是怎么使用的。

如何改变文件的访问权限

语法: chmod 选项 权限 文件名或目录名
功能: 设置文件的访问权限。
常用选项: -R 递归修改目录文件的权限。

chmod指令权限值的格式:
格式一: 用户符号 +/-/= 权限字符
1)+:向权限范围增加权限代号所表示的权限。
2)-:向权限范围取消权限代号所表示的权限。
3)=:向权限范围赋予权限代号所表示的权限。
用户符号:
1)u:拥有者。
2)g:所属组。
3)o:other。
4)a:所有用户。

可以同时设置不同类用户的访问权限,只需要用逗号隔开。 

如何改变文件的拥有者

语法: chown 选项 用户名 文件名或目录名
功能: 修改文件的拥有者。
常用选项: -R 递归修改目录文件的拥有者。 

注意: 修改文件的拥有者需要root用户进行操作,若是普通用户则需要进行权限提升。

也可以使用chown指令同时修改文件的拥有者和所属组,将拥有者和所属组的用户名用冒号隔开即可。

如何改变文件的所属组

语法: chgrp 选项 用户名 文件名或目录名
功能: 修改文件的所属组。
常用选项: -R 递归修改目录文件的所属组。

如何修改文件的掩码

我们查看新建的文件和目录,它们都有自己默认的权限。

实际上,新建文件的默认权限为0666,新建目录的默认权限为0777。其中第一位的0与特殊权限有关,我们这里不必深究,而后面三位就是权限的八进制数值表示方法,我们将其翻译为字符表示方法。

但实际上你会发现,你所创建出来的文件和目录的权限值往往不是我们所翻译出来的值,原因就是创建文件和目录的时候还要受到umask的影响,假设默认权限是mask,则实际创建出来的文件权限是:mask&(~umask) 

语法: umask 权限值
功能: 查看或修改文件掩码。

我们可以通过指令umask查看文件默认掩码。

因此我们实际创建出来的文件和目录的权限值还需要进行进一步换算才能得出。首先我们将掩码的的后三位八进制换算为二进制,然后对其进行按位取反。然后将之前的新建文件的默认权限值和新建目录的默认权限值分别与其进行按位与操作,得到的就是我们创建出来的文件和目录的权限值。

粘滞位

粘滞位的引入

现在我已经讲解完了Linux权限的基本知识,于是我们开始运用权限来管理系统了。首先,root用户创建了一个tmp目录,提供给其他的普通用户创建临时文件,但使用了一段时间之后却出现了一些问题,Linux权限似乎存在一些不合理的地方:

  是什么原因导致的以上情况呢?

因为hrimkn起初创建的两个文件都是在My_tmp目录中,用户Dcccn虽然没有这两个文件的写和执行权限,但是却有My_tmp目录文件的所有权限,因此Dcccn可以随意删除hrimkn的文件。这种情况不就违反了Linux权限的初衷了吗?因此,便有了粘滞位的概念。

 粘滞位的使用

语法: chmod +t 目录名
功能: 给目录加上粘滞位。

当一个用户将某一个目录加上粘滞位后,该目录的权限值的最后一位变为字符“t”。

 注意:因为矛盾是由目录文件权限产生的,所有粘滞位只能加给目录文件,与普通文件没有关系。

当一个目录被设置为粘滞位,则该目录下的文件只能由:
1)超级用户删除。
2)该目录的拥有者删除。
3)该文件的拥有者删除。

注意: 虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件


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

相关文章

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。 …

CAN通信基础知识

CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986 年率先提出。此后,CAN 通过ISO11898 及ISO11519 进行了标准化。现在在欧洲已是汽车网络的标准协议。 CAN协议经过…

CAN通信详解

本章我们将向大家介绍如何使用STM32自带的CAN控制器来实现两个开发板之间的CAN通讯,并将结果显示在TFTLCD模块上。本章分为如下几个部分: 30.1 CAN简介 30.2 硬件设计 30.3 软件设计 30.4 下载验证 30.1 CAN简介 CAN 是Controller Area Network 的…

CAN通信总结

CAN通信总结 基本介绍 ​ 1. CAN通过两条通信线(双绞线)产生的电压差传输数据,一个CAN网络里的所有节点都挂在这两条通信线上,使用差分信号半双工通信。 ​ 2. CAN总线是广播类型的总线。所有节点都将始终接收所有通信&#xf…