初见Linux:权限篇

一.权限的定义:

        什么是权限?所谓权限在现实中就是权力+限制,是对于人,不同人所扮演的角色有着不同的权限。那么在Linux中也存在权限。权限=角色+事物属性。那么对于一件事情能否去执行以及完成都需要权限。

二.Linux中的用户

        2.1:root用户

                在Linux中,root用户属于超级用户,一台机子只能有一个超级用户。这个用户可以访问和修改系统中的所有文件和设置。

        2.2:普通用户

                在Linux下做有限的事情,受权限的限制。

        root用户与普通用户的区别:       

三:文件的类型与访问权限

        Linux系统中的文件可以分为几种类型,主要包括:目录(Directory),普通文件,链接文件等。那么在主要常见的文件类型是目录与普通文件。

        

        在Linux中的访问权限中,有三种不同角色的访问权限,分别问拥有者的访问权限,所属组的访问权限,以及other(其他人)的访问权限。

        

        r:

                表示此用户拥有read(读取)权限。

        w:

                表示此用户拥有write(写入)权限。

        x:

                表示此用户拥有可执行权限

        -:

                表示此用户无对于的权限。

那么我们在Linux中可以通过chmod命令来改本文件的读写属性,以及使用chown命令来修改文件的拥有者或所属组。

        如果我们将拥有者以及所属组都改为同一个用户,并且收回拥有者所以权限,但所属组不收回,那么文件还能进行读写吗?

        

        从上图测试可以观察到,收回拥有者所以权限,但所属组不收回,是不能对文件进行读写操作。此时我们可以猜测Linux权限匹配是先匹配拥有者,接着匹配所属组,最后匹配other。但还不能完全下定论,那么我们再接下来进行对照测试。

        从上图可以看到,如果将拥有者的权限改回rw,但取消所属组权限此时我们对文件进行读取和写入操作并不会收到影响,所以我们可以肯定:Linux权限匹配是先匹配拥有者,接着匹配所属组,最后匹配other。

四:关于权限的三个问题:

        4.1目录权限:

                通过上文对权限的了解,我们知道一个文件的读取写入与相应的权限有关,那么如果我要进入一个文件需要什么权限呢?

        

        上如创建了一个dir的目录,使用chmod u-r 命令后再cd进入dir,发现可以进入dir文件里。因此可以排除r权限,那会不会是w权限呢?

        那么把w权限去掉发现照样是可以进出dir目录的,所以可以得出,能否判断能否进入一个文件夹是看x权限。

        

        那r权限对目录是什么意思?

        通过上图示例我们知道了,目录的r权限是是否有权限查看此目录下的文件。

        那w权限对目录呢?                       从上图我们取消了dir目录中拥有者的w权限,接着进入dir,ls后发现dir目录下拥有一个test.txt文件,此时将test.txt文件进行删除发现没有权限。所以我们可以得出结论对目录没有w权限时候,新建,删除以及修改文件都不支持。

        4.2缺省权限

                在Linux中,缺省权限是指在创建新文件或目录时,系统自动赋予它们的权限。,Linux使用一个称为umask(用户文件创建掩码)的值来计算缺省权限,并且是以八进制来展示。

                对于普通文件,的初始权限为八进制的666,目录文件的起始权限为777。

                最终权限=初始权限&(-umask)

        那么我们可以使用八进制数值来修改文件的属性

        

        4.3粘滞位:

        在理解粘滞位之前,我们先了解Linux用户的补充知识。

首先我们知道,Linux是一款多用户的操作系统,在多用户下,对于文件的访问是隔离的。

        也就是说只有我们自己能访问自身的文件(root账号除外),别的用户同样也只能访问自身的文件。很好的做到了用户隔离。

        但如果我们想让Linux下不同用户能够共享文件呢?

                首先肯定是不能创建在任何普通用户的家目录下,所以共享文件只能存在其他目录。

        

我们根目录下创建一个temp目录,并把other权限设置rw。

        

        此时可以看到cat用户与lwh用户在通过目录下实现了文件共享,那么这跟粘滞性有什么关系呢?如果此时来了另一个用户,并且用户看到cat与lwh在文件共享,它不高兴想删除直接删除文件,那么可不可行呢?

                我们可以看到此时用户为dog,test.txt对于dog用户只用r的权限,但从上图dog用户可以直接删除test.txt文件,这是为什么,是不是不符合常理。

        但我们仔细回顾temp文件的属性对于other是rwx,属于权限大开。因为删除文件是所在目录的w权限决定的,与目标文件无关!我删你,与你何干!

        但如果我们将w权限关掉,那么又不能实现两个账户的文件共享了那应该怎么办呢?

此时就提到了粘滞性。权限粘滞性(Sticky Bit)是Linux和Unix文件系统中的一种特性,主要用于控制对目录中文件的删除权限。它确保只有文件的所有者或超级用户能够删除或重命名该目录中的文件。

        通过 chmod +t temp 命令 在目录末尾增加粘滞位,此时我们用lwh用户创建文件,使用cat用户删除发现就没有权限了,有效的保护了文件的安全性。任何用户,在设置了粘滞位的目录下,只能删除自己的文件,别人无法删除(root除外)。


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求

【web服务器】 web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼 常见的web服务器:Tomcat,Jboss&…

华为配置 之 STP

目录 简介: STP: RSTP: 如何改变根网桥: (1)改变优先级: (2)改变root: 各端口的状态: 总结: 简介: STP(Spanning Tree Protoco…

深度学习:Matplotlib篇

一、简介 1.1 什么是 Matplotlib? Matplotlib 是一个广泛使用的 2D 绘图库,它可以用来在 Python 中创建各种静态、动态和交互式的图表。无论是科学计算、数据可视化,还是深度学习模型的训练与评估,Matplotlib 都能提供强大的图形…

虚拟现实新纪元:VR/AR技术将如何改变娱乐与教育

内容概要 在当今科技飞速发展的时代,虚拟现实(VR)和增强现实(AR)技术不仅让我们的娱乐体验如虎添翼,更为教育变革注入了新活力。这些技术的飞跃进展,将原本平淡无奇的场景转变为令人沉醉的沉浸…

深入浅出 C++ STL:解锁高效编程的秘密武器

引言 C 标准模板库(STL)是现代 C 的核心部分之一,为开发者提供了丰富的预定义数据结构和算法,极大地提升了编程效率和代码的可读性。理解和掌握 STL 对于 C 开发者来说至关重要。以下是对 STL 的详细介绍,涵盖其基础知…

面向对象编程中类与类之间的关系(一)

目录 1.引言 2."有一个"关系 3."是一个"关系(继承) 4.“有一个”与“是一个”的区别 5.not-a关系 6.层次结构 7.多重继承 8.混入类 1.引言 作为程序员,必然会遇到这样的情况:不同的类具有共同的特征,至少看起来彼…

JavaWeb——Web入门(1/9)-Spring Boot Web介绍(Spring家族,Spring Boot)

目录 Spring家族 Spring Boot 在我们了解完了 Maven 这款项目构建工具的基本使用之后,接下来我们正式的进入到 Web 后端开发的学习。 第一篇章要了解的是 Spring Boot Web 的入门。 在正式开始之前,我们先需要介绍一下什么是 Spring 以及什么是 Spri…

H3C Hybrid 实验

实验拓扑 图 1-1 注:如无特别说明,描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备,R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备,以此类推;另外,同一网段中,IP 地址的主机位为…

【NOI】C++函数入门二(自定义函数)

文章目录 前言一、概念1.导入1.1 首先什么是函数呢? 2.函数分类3.为什么要定义函数呢?4.函数结构5.函数使用注意事项 二、例题讲解问题:1137 - 纯粹素数问题:1258 - 求一个三位数问题:1140 - 亲密数对问题:…

Flutter仿京东商城APP实战 用户中心基础布局

用户中心界面 pages/tabs/user/user.dart import package:flutter/material.dart; import package:jdshop/utils/zdp_screen.dart; import package:provider/provider.dart;import ../../../store/counter_store.dart;class UserPage extends StatefulWidget {const UserPage…

如何在Node.js中执行解压缩文件操作

一、解压文件 1.安装依赖: 安装adm-zip依赖包:npm install adm-zip --save 安装iconv-lite依赖包:npm install iconv-lite --save 解压前的file文件夹结构: update-1.0.2.zip压缩包内容: 2.在depresssFile.js文件&…

Vue学习笔记(六)

模板引用(获取DOM 操作) 虽然Vue的声明性渲染模型为你抽象了大部分对DOM的直接操作&#xff0c;但在某些情况下&#xff0c;我们仍然需要直接访问底层DOM元素。要实现这一点&#xff0c;我们可以使用特殊的refattribute。 挂载结束后引用都会被暴露在this.$refs之上。 <s…

华为原生鸿蒙操作系统:我国移动操作系统的新篇章

华为原生鸿蒙操作系统&#xff1a;我国移动操作系统的新篇章 引言 在移动操作系统领域&#xff0c;苹果iOS和安卓系统一直占据主导地位。然而&#xff0c;随着华为原生鸿蒙操作系统的正式发布&#xff0c;这一格局正在发生深刻变化。作为继苹果iOS和安卓系统后的全球第三大移动…

android studio编译错误提示无法下载仓库

一、调整方法之一 buildscript {repositories {google()jcenter()//maven { url https://maven.aliyun.com/repository/google }//maven { url https://maven.aliyun.com/repository/central }}dependencies {// classpath "com.android.tools.build:gradle:4.1.1"c…

Prompt Engineering (Prompt工程)

2 prompt工程2大原则 2.1 给出清晰&#xff0c;详细的指令 策略1&#xff1a;使用分割符清晰的指示输出的不同部分&#xff0c;比如"",<>,<\tag>等分隔符 策略2&#xff1a;指定一个结构化的输出&#xff0c;比如json,html等格式 策略3&#xff1a;要…

C++STL之stack

1.stack的使用 函数说明 接口说明 stack() 构造空的栈 empty() 检测 stack 是否为空 size() 返回 stack 中元素的个数 top() 返回栈顶元素的引用 push() 将元素 val 压入 stack 中 pop() 将 stack 中尾部的元素弹出 2.stack的模拟实现 #include<vector> namespace abc { …

监控-08-skywalking监控告警

文章目录 前言一、准备二、配置skywalking2.1 修改alarm-settings.yml2.2 重启skywalking 三、收到告警邮件总结 前言 skywalking根据监控规则&#xff0c;通过webhook调后端微服务接口&#xff0c;从而发送告警邮件。 一、准备 根据上几章内容&#xff0c;保证skywalking能监…

Spring IoC DI

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多数据结构知识 目录 1. 应用分层 1.1 如何分层: 1.2 MVC与三层架构区别联系 2. Spring 3.IoC & DI⼊⻔ 3.1 什么是IoC&#xff1f; 3.2 DI 介绍 …

CANFD SSP第二采样点引发的“风波”分析

案例背景&#xff1a; 近几年来&#xff0c;主机厂逐渐大范围使用CANFD通信。在CAN网络中&#xff0c;因SSP第二采样点引发的错误帧偶有发生&#xff0c;所以在主机厂的SPEC需求中&#xff0c;明确要求启用CAN控制器的TDC收发器延迟补偿&#xff0c; 目录 1 CANFD的SSP第二采…

【设计模式】《Java 设计模式魔法:解锁高效编程的秘密武器》

标题&#xff1a;《Java 设计模式奇幻之旅&#xff1a;解锁高效编程的魔法钥匙》 摘要&#xff1a; 本文将深入探讨 Java 中的十种设计模式&#xff0c;包括单例模式、工厂方法模式、抽象工厂模式…迭代器模式、组合模式、模板方法模式等。通过详细的解释、生动有趣的例子以及…