一文知晓Linux文件权限

在这里插入图片描述

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻推荐专栏1: 🍔🍟🌯C语言初阶
🐻推荐专栏2: 🍔🍟🌯C语言进阶
🔑个人信条: 🌵知行合一
🍉本篇简介:>:讲解Linux中权限相关的知识,权限管理,文件掩码,粘滞位等等.
金句分享:
✨你没有走错路,只是在等待风的到来.✨

一、用户介绍

(1) 用户分类

在初始Linux时,我们提到过,当时还讲解如何添加新用户.

Linux环境安装

在这里插入图片描述

Linux下有两种用户:
(2)root超级用户:几乎可以在linux下进行任何想要做的事情,为所欲为,不受限制.
(2)普通用户:在linux下进行受很多权限约束的事情.

小知识点:
root超级用户的命令提示符是“#”.
普通用户的命令提示符是"$".
每个用户都需要各自的密码,无论是root超级用户还是普通用户.

(2) 切换用户

在学习阶段,我们建议使用普通用户,但是,很多时候,普通用户会受到很多限制.
比如:安装软件或者指令的时候要求使用root账户.

在这里插入图片描述

此时我们需要切换到root账户,进行下一步操作.

①从普通用户–>切换到root用户

su root

在这里插入图片描述

从当前路径此时我们可以发现,这只是身份切换到了root,并不是以root账户的身份登录的.

切换回来,使用exit或者Ctrl+d.
在这里插入图片描述
如果我们想在普通账户身份登录后,切换到root时,是以root账户登录.
在这里插入图片描述
切换回去,依旧可以使用exit或者Ctrl + d.

root账户–>普通账户

不要密码,直接su username

在这里插入图片描述

牛牛小结:↓
在这里插入图片描述

提一句:为了解决指令执行时的权限问题,我们一种方式是切换到root用户,除此之外,我们还可以采用对一条指令进行提权的操作.

sudo command(指令的名称)

此时只需要输入我们普通用户自己的密码就行了.但是这岂不是人人皆可以root了?
其实不是所有的普通用户都可以进sudo + 指令提权,只有被加入到root的信任用户名单的才可以,而一般我们创建的新用户都是不可以的,需要在root那手动配置.
在这里插入图片描述

二、权限管理

(1) 文件访问者分类:

C++中,我们对不同的用户分成了三类人:

  1. 所有者:文件或文件目录的所有者 u(全称:user)
  2. 组员:文件和文件目录的所有者所在的组的用户:g(全称:Group)
  3. 其他用户 o (全称:other)

(2) 文件类型分类:

d:文件夹
-:普通文件: 文本文件,可执行文件,库等.
l:软链接: 与Windows的快捷方式类似
b:块设备文件: 硬盘、光驱等
p:管道文件: 用来通信的文件
c:字符设备文件: 键盘、显示器等文件.
s:套接口文件

(3) 文件权限分类:

权限文件角度目录角度
r (全称:read)读取文件内容的权限查看该目录信息的权限
w(全称:write)修改文件内容的权限删除、移动目录内文件的权限
x(全称:execute)执行文件的权限进入目录的权限
-无权限无权限

① 读权限 (r (全称:read)):
  从文件角度来说, 具有读取文件内容的权限.
  从目录角度来说, 具有查看该目录信息的权限.

② 写(w(全称:write)):
  从文件角度来说, 具有修改文件内容的权限.
  从目录角度来说, 具有删除、移动目录内文件的权限.

③ 执行( x(全称:execute)):
  从文件角度来说, 具有执行文件的权限.
  从目录角度来说, 具有进入目录的权限.

介绍这些基本知识之后,我们可以开始学习权限知识啦!

在这里插入图片描述

当我们使用ll指令查询文件详细信息时,是否好奇过前面一大串是什么呢?

在这里插入图片描述

(4)修改用户权限:

目录下有一个test1.txt文件,对不同用户的权限如下:

文件名usergroupother
test1.txt可读可写不可执行可读可写不可执行只读

在这里插入图片描述

这里我们发现,似乎root不受权限的限制,可以自由行事!

(4)修改文件权限

那如果想修改文件对other权限,使其对other的权限

在这里插入图片描述

小结:

//对单个用户修改权限
//示例:将test1.txt对other用户添加w权限
 chmod o+w test1.txt

//对多个不同用户进行不同的权限设置,中间用逗号隔开
 chmod u+x,g-rw,o-r test1.txt

//同时对所有用户进行统一操作.
 chmod a-rwx test1.txt

小知识:

还可以采用8进制的方式对文件权限修改.
在这里插入图片描述

示例:
在这里插入图片描述

(5)修改文件的拥有者

指令: chown 新拥有者名 文件名
全称: change owner

我是一件物品的拥有者,如果我想将它赠送给别人,这也要看别人是否同意.

要么对指令进行提权,要么利用root账户帮忙修改.

在这里插入图片描述

(6)修改文件的所属组

指令:chgrp 新组名 文件名
全称: change group

同样,自己是没有权限修改所属组的.

在这里插入图片描述

利用root账户进行修改:
在这里插入图片描述

三、文件掩码

我们分别创建一个文件和一个目录:

观察它们的文件权限:
在这里插入图片描述

很明显,它们的默认权限是

文件夹文件
07750664

可默认权限真的是这样的吗?

(1) 查看文件掩码

指令:umask

不同环境可能有所差异.
在这里插入图片描述

(2) 修改文件掩码:

指令:umask 修改后的数值

在这里插入图片描述

(3) 文件默认权限计算

将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002
这里的减并不是直接减法,而是权限的减,即文件掩码中出现的权限,最后的文件权限中不得出现

计算公式:

umask & (~umask)

在这里插入图片描述
这也就是为什么我们一开始看到的新创建的文件和文件夹的权限是 06640775
.

(4) 文件掩码的作用

Linux下的文件掩码(file mode mask)决定了新建文件目录的默认权限。它是一种用于限制文件和目录权限的掩码,通过与系统默认权限进行按位与运算来决定最终的文件/目录权限。

默认情况下,新建的文件和目录的权限是非常开放的,因此要通过文件掩码来进行限制,以便确保文件和目录的安全性。文件掩码通常包括三个数字,分别代表所有者、组和其他人的权限。每个数字都由三个位组成,分别代表读、写和执行权限。例如,一个掩码为022的文件表示所有者具有读写权限,组和其他人只具有读权限。

四、粘滞位

粘滞位的引入

目录的权限强调:

  1. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  2. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件
  3. 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

对于一个共享目录,有的文件我们不希望给其他人(other)看和修改.那other可以删除这个文件吗?
在这里插入图片描述

在这里插入图片描述

此时出现一个比较尴尬的问题:
对于这个文件,其他人既不能读,也不能写,但是居然可以删除,太离谱了吧,得不到的就毁灭?

为什么可以删除文件呢?
因为文件是否可以删除不是取决于文件本身的权限,而是该文件所在目录的权限,如果目录没有可写权限, 则无法在目录中删除文件.

那我们文件所在目录设置为其他人不可写不就行了吗?

(1)对其他用户去掉写权限;
在这里插入图片描述
(2) 再次测试:
在这里插入图片描述

是的,这样的确其他人不可读不可写也不可删了,但是目录设置不写以后,连创建文件和文件夹都不行了,这叫共享目录吗?

为了解决这个尴尬的问题,也就是在一个共享目录下,该目录具有对所有用户具有写权限,但是删除目录中的文件,只有两种人:

1、该目录的所有者删除(几乎只有root才可以创建)
2、该文件的所有者删除

(1) 设置粘滞位

指令:chmod +t 目录名

在这里插入图片描述

(2) 测试粘滞位:

在这里插入图片描述

五、权限的特殊问题

问题1:
文件所有者减去了文件的所有用户权限后,即使自己是所有者,依旧不可读写.

疯起来我连自己都敢打!
在这里插入图片描述

问题2;
如果一个用户对于test1.txt文件他既是所属组又是拥有者,但是该文件
拥有者:只读
所属组:可读可写
那该用户到底可不可以对文件进行写操作呢?
在这里插入图片描述
在这里插入图片描述
答案: 不能!
在这里插入图片描述
因为一个人只能是一个身份,第一个识别到是拥有者,则看到的只有读权限,我们可以用 root账户将拥有者改掉,我就是所属组了,就可以读写了.

有关linux权限的知识就讲到这里了,谢谢友友们的观看,我们下期见!
在这里插入图片描述

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

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

相关文章

聚量推客滴滴学生认证app地推网推拉新升级啦

“聚量推客”滴滴学生认证项目升级 滴滴学生认证升级后分为微信推广版本和支付宝推广版本两种码 根据自己需要选择推广场景,适合地推和网推

CSRF跨域请求伪造

1.SSRF服务端请求伪造(外网访问内网) SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的&#xf…

甲骨文真的要开放Java EE?

甲骨文表示,目前正在与可能的几个候选基金会,以及许可证持有者和社区在进行谈判。随着Java EE 8平台的确定,甲骨文在周四表示,目前正在考虑将Java Enterprise Edition技术转移到开源社区。 甲骨文在其博客中说道,这次的…

【TES641】基于VU13P FPGA的4路FMC接口基带信号处理平台

板卡概述 TES641是一款基于Virtex UltraScale系列FPGA的高性能4路FMC接口基带信号处理平台,该平台采用1片Xilinx的Virtex UltraScale系列FPGA XCVU13P作为信号实时处理单元,该板卡具有4个FMC子卡接口(其中有2个为FMC接口)&#x…

【App 抓包提示网络异常怎么破?】

背景 当你测试App的时候,想要通过Fiddler/Charles等工具抓包看下https请求的数据情况,发现大部分的App都提示网络异常/无数据等等信息。以“贝壳找房”为例: 455 x 705 Fiddler中看到的请求是这样的: 619 x 215 你可能开始找证书的问题:是不是Fiddler/Charles的证书没有…

解决提交到App Store时的ITMS-90478和ITMS-90062错误

解决提交到App Store时的ITMS-90478和ITMS-90062错误 目录 引言 正文 1. 什么是ITMS-90478和ITMS-90062错误? 2. 解决方法 2.1 确定当前的版本号和构建号 2.2 递增版本号和构建号 2.3 再次尝试提交应用 总结 参考资料 错误记录 摘要:本文为iOS…

基于Java的宠物商店管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

高校打造动捕实训室:开启元宇宙创新教育时代

随着科技的发展,高校教育面临着新的挑战与机遇。高校动捕实训室涉及多个学科领域,如艺术学院、设计学院、新媒体学院等,适用于动画、视觉传达、数码媒体、数字媒体艺术等专业。动捕实训室可以为学生提供创意发挥的空间,使用动捕设…

【Airflow】构建爬虫任务系统

爬虫脚本太多了需要进行管理一下,领导决定使用airflow 我了解了一下这个平台是用来做任务调度。 是一个ETL工具 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程 这里是一个github的地址 https://github.com/apache/airflow 这里是官方文档 http…

使用AOP切面实现日志记录功能

系列文章 1.SpringBoot整合RabbitMQ并实现消息发送与接收 2. 解析JSON格式参数 & 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. Java中运用BigDecimal对字符串的数值进行加减乘除等操作 5. List<HashMap<String,String>&…

seacms_CNVD-2020-22721_v10.1漏洞分析与复现

seacms 远程命令执行漏洞复现 文章目录 seacms 远程命令执行漏洞复现一、基本信息二、组件简介三、漏洞详情漏洞介绍影响范围危害 四、防御1. 漏洞存在性检测2. 修复建议3. 规避措施4. 漏洞利用检测 五、漏洞复现1. 复现环境2. 漏洞复现 一、基本信息 titlecontentnote漏洞编号…

【Redis】Docker部署Redis数据库

Docker部署Redis数据库 1. Redis介绍2. CentOS 7 安装 & Docker 配置3. 拉取Redis 镜像、创建容器3.1 配置Docker镜像源3.2 拉取Redis 镜像3.3 容器创建 1. Redis介绍 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用…

二、【常用的几种抠图方式一】

文章目录 选框抠图快速选择工具抠图魔棒工具抠图对象选择工具抠图套索工具抠图多边形套索工具抠图磁性套索工具抠图 选框抠图 选框工具抠图适合规则的图形,如下图先使用选框工具框出对象的图轮廓,然后再选择并遮住在里边擦出图形的边缘,根据…

【LeetCode:1465. 切割后面积最大的蛋糕 | 贪心 + 排序】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

安全和便捷:如何将运营商二要素API应用于实名制管理中

引言 随着互联网的快速发展,数字化身份验证和实名制管理变得越来越重要。在金融、电子商务、社交媒体等领域,确保用户身份的安全和准确性至关重要。运营商二要素核验API成为了实名制管理的有力工具,它不仅能够提供高水平的安全性&#xff0c…

常见的云测试策略及重要性

随着云计算技术的快速发展,云服务已经成为了现代应用程序开发和部署的核心组成部分。然而,随之而来的是对云系统性能和质量的不断追求,这使得云测试变得至关重要。本文将探讨云测试的概念、重要性以及一些常见的云测试策略和工具。 一、云测试…

jvm摘要

第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 程序计数器-线程私有:是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 程序计数器是唯一一个没有规定任何OutOfMemoryError 情况的区域。 Java 虚拟机栈-线程私有:用于执行Java …

PlantSimulation访问本地Excel文件的方法

PlantSimulation访问本地Excel文件的方法 PlantSimulation访问本地Excel文件的方法PlantSimulation访问本地Excel文件的方法 //Param StatusTable,T_DataTable:object var T_DataTable:object:=DataTable IF NOT isComputerAccessPermittedMESSageBox("计算机访问被阻止,…

如何在群晖NAS中搭建WebDav服务,并实现公网访问

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 1. 在群晖套件中心安装WebDav Server套件1.1 安装完成后,启动webdav服务,并勾选HTTP复选…

uniapp 单选框以及多选框样式更改

radio以及checkbox默认样式不符合自身需求时,根据自身需求更改样式,以下是自身的示例: 单选: 多选: 由于uniapp自身包含了一套默认的样式,所以如果不想全局更改只想在某个单据页面使用的话,就…