Linux权限篇

news2024/12/22 0:07:45

1.什么是权限?

生活中,有些事情你不能做,别人能做,这叫别人有做某事的权限;

Linux中,权限的概念也是类似的,特指通过一定的条件,拦住一部分人,给另一部分人权限去访问资源


2.权限的本质

上面说到,权限是限制人的,因此权限一定离不开人;另一方面,权限又跟事物的自身属性相关,你总不能说我去爱奇艺上刷算法题吧

因此,权限 = 人 + 事物属性

这里的“人”特指你充当什么样的角色,而不是你本人是谁;比如你能进入你们学校,是因为你叫xxx,还是因为你是你们学校的学生,所以能进入你们学校

接下来就分别从“人”和“事物属性”这两方面分别谈谈权限


3.Linux中的用户

Linux中的用户有两种:

  • root:超级管理员账号
  • /home/xxx:普通用户

3.1 用户切换

  • 从root切换为普通用户:[su](切换后当前路径不变) 或者 [su -](切换后直接到用户家目录)
  • 从普通用户切换到root:[su] 或者 [su -]

有这样一种情景,我是个普通用户,但我想以root的身份执行一条命令,该怎么办?

第一种方法:在你自己的Linux服务器上,直接[su -]切换成root,再执行命令;但在以后的工作中,我们一般都是普通用户,也不可能登上root账号,所以这种方式显然是不实际的

第二种方法:sudo + 命令,在执行的命令最前面加上[sudo],此时要求输入普通用户的密码;有人会问了,我想以root的身份执行命令,不应该是输入root的密码吗?

实际上,普通用户执行sudo时,默认情况下是不能执行的

需要在root下将普通用户添加到“白名单”列表中,允许普通用户使用指令提权,才能sudo一个命令

因为root已经允许普通用户使用指令提权了,因此sudo时只需要普通用户的密码


3.2 Linux中的“人”

Linux中文件的所属者有三种角色:拥有者,所属组,其他人

文件属性中并没有列出其他人这一栏,因为拥有者和所属组之外的就是其他人,比如我是一个普通用户,去访问别的用户的文件,这时我就是其他人

三种角色跟前面的用户有什么关系?

前面的用户是具体的人,而拥有者,所属组,其他人是具体的角色,角色是需要人来承担的

我有权限访问一个文件,不是因为我是xxx用户,而是因为我是该文件的拥有者或所属组


4.Linux中文件的权限

4.1文件的类型

在Linux中,不用文件的后缀区分文件的类型,也就是说Linux中文件的后缀只是摆设;但还是建议创建文件时加上后缀,便于自己区分

注意:只是Linux系统不以后缀区分文件类型,不代表Linux中的工具不以后缀区分文件类型,比如gcc在编译一个文件时,需要判断该文件是不是一个源代码文件

文件属性中的第一列表示文件的类型

  • -:普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件
  • l:链接文件

目前,我们只需认识-和d即可

4.2文件的属性权限

文件的属性权限有三种,分别是

  • r:读权限
  • w:写权限
  • x:可执行权限

文件的属性中,除去第一列,往后每三列,分别代表拥有者,所属组,other对该文件的权限

因为权限 = 角色 + 属性,所以以后我们描述一个权限时,应当是拥有者/所属组/other 对该文件 有/没有 r/w/x权限

4.2.1修改权限

在讲如何修改一个文件的权限之前,我们得知道,一个文件的权限谁能修改?​​​​​​​

  1. 该文件的拥有者
  2. root

我们将介绍两种方式来修改权限

第一种方法:chmod​​​​​​​

  • ​​​​​​​chmod [u/g/o/a][+/-][r/w/x] filename

可以看到,去掉了文件对应的权限,就不能对该文件进行读/写/执行操作了

也就是说,对于普通用户,要受到文件权限的约束,即使该文件是自己的

为什么要设置文件权限?

在上述操作中,我们切换了用户,去对一个不属于自己的文件进行操作时,没有对应的文件属性权限就不能执行对应的操作

因此权限的意义就是保证普通用户文件的安全

上述操作中,我是file.txt文件的拥有者,没有r权限,确实不能读文件;但我也是file.txt文件的所属组,且所属组有r权限,但依旧不能读文件,这是为什么?

实际上,Linux的身份认证只识别一次,也就是说,如果你是文件的拥有者,Linux识别你是文件的拥有者后,就只看文件的拥有者权限了

怎么去验证呢?

我们用root修改file.txt文件的拥有者;切换为普通用户,此时我们不是file.txt文件的拥有者,但是file.txt文件的所属组,且所属组有rw权限,因此我们可以对file.txt文件进行读写

权限 = 角色(具体的人) + 权限属性

上面我们介绍了修改文件的属性权限,那怎么修改一个文件的角色呢?

  • chown/chgrp xxx filename
  1. 以普通用户身份修改:需要指令提权,在指令的前面加上sudo
  2. 以root身份修改:随便修改

第二种方法:八进制表示

  • chmod 八进制 filename

一个权限的有无可以用1或0表示,因此我们将一个角色的对应权限表示成二进制,比如rwx就是110,再表示成八进制,也就是6;同样将其他角色的对应权限也表示成八进制

比如,一个文件的拥有者,所属组,other拥有的权限是rwx,rwx,rwx,可以表示成777

如何理解x权限?

一个文件有了x权限是不是就表示该文件可执行了?

可以看到:一个文件可执行 = 该文件本身是一个可执行文件 + 用户有对该文件可执行权限

4.3目录的权限

  • 目录的r权限决定能不能查看该目录中的文件
  • 目录的w权限决定能不能对该目录中的文件进行增删改
  • 目录的x权限决定能不能进入改目录

如何理解目录的rwx权限?

文件 = 内容 + 属性

目录的内容是该目录中所有文件的详情数据

没有r权限就代表不能对目录的内容进行读,也就是不能查看目录中的文件

没有w权限就代表不能对目录进行写,也就是不能修改目录中的文件,包括删除和增加文件

在上面的目录中,我作为一个普通用户,能删除root创建的文件吗?

答案是可以的

因为删除一个文件与该文件本身没有关系,与用户有没有该文件所处目录的w权限有关


5.文件的默认权限

当创建一个文件或目录时,可以看到自动带上了一些权限,为什么就自动带上某些权限呢?

Linux中创建普通文件的起始权限是666创建目录的起始权限是777;但好像跟上面的权限有些不同

文件创建的过程中,会过滤掉umask中出现的权限

文件的最终权限 = 起始权限 & (~umask)​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1303530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 element-plus 日期选择器 el-date-picker 汉化

vue3 项目中,element-plus 的日期选择器 el-date-picker 默认是英文版的,如下: 页面引入: //引入汉化语言包 import locale from "element-plus/lib/locale/lang/zh-cn" import { ElDatePicker, ElButton, ElConfigP…

【Docker】使用docker-compose搭建django+vue工程文章

我们尝试使用docker-compose编排一个后端基于django,前端基于vue,数据库为postgresql并使用nginx进行反向代理的web工程。 工程准备 Docker 安装Docker 安装docker-compose django 在python3.7的环境下创建 修改settings.py文件 修改 将静态文件收集路径添加进 ,笔…

视频监控管理平台/智能监测/检测系统EasyCVR协议播放限制时长无效是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

福德植保无人机:绿色农业的新篇章

今天,我们荣幸地向您介绍福德植保无人机,一种改变传统农业种植方式,引领绿色农业的新科技产品。福德植保无人机以其高效、环保、安全的特点,正逐渐成为植保行业的新宠。福德植保无人机是一种搭载了高性能发动机和精确喷洒系统的飞…

使用Mockjs模拟(假数据)接口(axios)

一、什么是MockJs Mock.js官网 Mock.wiki.git mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 二、安装mockjs npm install mockjs 三、 MockJs使用 简单使用: // 使用…

Java SPI机制学习

最近阅读源码时看到了SPI加载类的方式 这里学习一下 SPI Service Provider Interface 服务提供接口 API和SPI区别 API是接口和实现类均有服务提供方负责 服务调用方更多是一种主动调用 只是调用SDK来实现某个功能;接口的归属权在于服务提供方 SPI是接口在调用方…

【UE5】监控摄像头效果(下)

目录 效果 步骤 一、多摄像机视角切换 二、摄像头自动旋转巡视 三、摄像头跟踪拍摄 效果 步骤 一、多摄像机视角切换 1. 打开玩家控制器“MyPlayerController”,添加一个变量,命名为“BP_SecurityCameraArray”,类型为“BP_SecurityCa…

【JVM从入门到实战】(二)字节码文件的组成

一、Java虚拟机的组成 二、字节码文件的组成 字节码文件的组成 – 应用场景 字节码文件的组成部分-Magic魔数 什么是魔数? Java字节码文件中的魔数 文件是无法通过文件扩展名来确定文件类型的,文件扩展名可以随意修改,不影响文件的内容。…

新能源汽车生产污废水需要哪些工艺及设备

新能源汽车的快速发展带来了许多环境问题,其中之一就是生产过程中产生的污废水。由于新能源汽车的生产过程与传统汽车有所不同,因此需要采用特定的工艺和设备来处理和处理这些废水。 首先,新能源汽车生产过程中产生的污废水主要来自洗涤和冷却…

[排序篇] 冒泡排序

目录 一、概念 二、冒泡排序 2.1 冒泡降序(从大到小排序) 2.2 冒泡升序(从小到大排序) 三、冒泡排序应用 总结 一、概念 冒泡排序核心思想:每次比较两个相邻的元素,如果它们不符合排序规则(升序或降序)则把它们交换过来。…

.NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)

WebAppDbTest 项目准备 项目准备1、.net cli 创建项目2、nuget 包引用和项目结构2.1、项目添加相关 nuget 包2.2、WebAppDbTest 项目结构 3、项目代码说明3.1、CSharp/C# 类文件说明3.2、json 配置文件说明 4、项目运行预览 数据库 .db 文件准备1、创建 SQLite 数据库1.1、在 W…

赛宁网安多领域亮相第三届网络空间内生安全发展大会

2023年12月8日,第三届网络空间内生安全发展大会在宁开幕。两院院士、杰出专家学者和知名企业家相聚南京,围绕数字经济新生态、网络安全新范式进行广泛研讨,为筑牢数字安全底座贡献智慧和力量。 大会围绕“一会、一赛、一展”举办了丰富多彩的…

【华为数据之道学习笔记】3-11元数据管理

1. 产生元数据 (1)明确业务元数据、技术元数据和操作元数据之间的关系,定义华为公司元数据模型。 (2)针对找数据及获取数据难的痛点,明确业务元数据、技术元数据、操作元数据的设计原则。 1)业务…

虚拟化逻辑架构:KVM虚拟机通过OVS端口组实现网络连接

目录 一、实验 1.CentOS 7 安装 OpenVSwitch(构建RPM安装包) 2.KVM虚拟机通过OVS端口组实现网络连接 二、问题 1.安装openvswitch-2.5.10报错 2.virt-install未找到命令 3.如何删除自定义网络 一、实验 1.CentOS 7 安装 OpenVSwitch(构建RPM安装包&#xff…

蓝桥杯周赛 第 1 场 强者挑战赛 6. 小球碰撞【算法赛】(思维题/最长上升子序列LIS)

题目 https://www.lanqiao.cn/problems/9494/learning/?contest_id153 思路来源 Aging代码 题解 二分时间t&#xff0c;第i个小球对应一个起点pi、终点pit*vi的区间&#xff0c;问题转化为&#xff0c; 选最多的区间&#xff0c;使得不存在区间包含&#xff08;即li<l…

不同路径dp问题

1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 从上往下填写每一行 每一行从左往右 5.返回值 dp[m][n] ------------------------------------------------------------------------------------------------------------------------------ 1.状态表示 2.状态转移方程 3…

每日一题,头歌平台c语言题目

任务描述 题目描述:输入一个字符串&#xff0c;输出反序后的字符串。 相关知识&#xff08;略&#xff09; 编程要求 请仔细阅读右侧代码&#xff0c;结合相关知识&#xff0c;在Begin-End区域内进行代码补充。 输入 一行字符 输出 逆序后的字符串 测试说明 样例输入&…

DevOps:自动化、持续交付和持续集成实践

DevOps&#xff1a;自动化、持续交付和持续集成实践 一、DevOps 简介1.1 DevOps 模式定义1.2 DevOps 的工作原理1.3 DevOps 的优势1.4 DevOps 的意义1.5 DevOps 最佳实践 二、持续集成简介2.1 持续集成的意义2.2 持续集成的工作原理2.3 持续集成的优势 三、持续交付简介3.1 持续…

解决夜神模拟器与Android studio自动断开的问题

原因&#xff1a;夜神模拟器的adb版本和Android sdk的adb版本不一致 解决办法&#xff1a; 1.找到android的sdk &#xff08;1&#xff09;File--->Project Structure (2)SDK Location:记下sdk的位置 2.找到sdk中的adb文件 SDK-->platform-tools-->adb.exe 3.复制…

单片机(STM32,GD32,NXP等)中BootLoader的严谨实现详解

Bootloader(引导加载程序)的主要任务是引导加载并运行应用程序&#xff0c;我们的软件升级逻辑也一般在BootLoader中实现。本文将详细介绍BootLoader在单片机中的实现&#xff0c;包括STM32、GD32、NXP Kinetis等等的所有单片机&#xff0c;因为无论是什么样的芯片&#xff0c;…