一文知晓Linux文件权限

news2024/9/30 11:26:22

在这里插入图片描述

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻推荐专栏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权限的知识就讲到这里了,谢谢友友们的观看,我们下期见!
在这里插入图片描述

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

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

相关文章

将多行文本分段编程视频课程教程:中文编程不需英语基础零基础轻松学编程

将多行文本分段编程视频课程教程:中文编程不需英语基础零基础轻松学编程 上图为 中文编程工具界面,菜单和命令全中文,不需英语基础都可以学习。 系统化视频课程教程总目录及明细,可以点击下方链接进入学习 编程系统化课程总目录…

基于springboot实现网上书城平台管理系统项目【项目源码+论文说明】

基于springboot实现网上书城平台管理系统演示 摘要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括网上书城管理系统的网络应用,在国外网上书城管理系统已经是很普遍的方式,不过国内的书城管理系统可…

服务器执行命令或脚本的两种方式

目录 1、通过Runtime 2、通过ProcessBuilder 在java开发中,有时候需要与操作系统的命令行交互,执行特定的CMD命令或脚本。 我们有如下两种方式来实现: Java的Runtime类和ProcessBuilder类都允许Java程序启动一个新的进程并执行特定的命令&#xff0…

2016年亚太杯APMCM数学建模大赛B题化学元素对变形钢筋性能的影响求解全过程文档及程序

2016年亚太杯APMCM数学建模大赛 B题 化学元素对变形钢筋性能的影响 原题再现 热轧带肋钢筋通常被称为变形钢筋,它主要用于钢筋混凝土构件的骨架,在使用中需要一定的机械强度、弯曲和变形性能、制造焊接性。钢中的化学成分是影响热轧钢最终组织性能的基…

港联证券:上市公司三季报反映经济回暖向好态势

我国经济在三季度继续回暖向好的态势,在越来越多上市公司发表的三季报里得到印证。 到10月26日,在已发布2023年三季报的1498家企业中,约有255家第三季度归母净获利跨越上半年总和,占已发表企业的17%。此外,682家公司三…

『Linux』补丁制作指南

前言 我们在参与某些开源项目的过程当中,经常会遇到漏洞之类的问题,需要我们打补丁解决。尤其是 Linux 源码,源码代码量较多,在修改完内核并发布新内核的时候,基本采用补丁的方式进行发布,而不是将整个内核…

如何在vscode中添加less插件

Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。它对CSS 语言增加了少许方便的扩展,通过less可以编写更少的代码实现更强大的样式。但less不是css,浏览器不能直接识别,即浏览器无法执行less代码&a…

基于java+swing+mysql实现的仓库商品管理系统

JavaSwingmysql用户信息管理系统 一、系统介绍二、功能展示三、项目相关3.1 乱码问题3.2 如何将GBK编码系统修改为UTF-8编码的系统? 四、其它1.其他系统实现 五、源码下载 一、系统介绍 本系统实现了两个角色层面的功能,管理员可以管理用户、仓库、商品…

ED8000 地下电子标签探测器|标识器探测仪深度测量校准操作说明

ED8000 地下电子标签探测器|电子标识器探测仪是探测地下电子标签或电子标识器的专用手持仪器,采用基于 ARM 架构的32位高性能处理器,反应敏捷;距离测量时采用异步差分测量技术(已申请专利),即使在有干扰的情…

论文阅读——DistilBERT

ArXiv:https://arxiv.org/abs/1910.01108 Train Loss: DistilBERT: DistilBERT具有与BERT相同的一般结构,层数减少2倍,移除token类型嵌入和pooler。从老师那里取一层来初始化学生。 The token-type embeddings and the pooler a…

windows11系统如何关闭自带杀毒软件

在有时候 我们下载一些东西 通过不过杀毒软件 需要关闭 不过我还是奉劝大家 过不了的 可能就代表着携带病毒 还是慎重为好 弄清楚来源免得给自己带来麻烦 毕竟电脑也是贵重物品 首先 右键下方菜单 选择设置 在左侧菜单中 选择 隐私和安全性 在新弹出的面板中选择 Windows 安…

SpringCloud微服务多应用脚手架的搭建与部署

最近几年SpringBoot大热,很多IT公司都开始采用SpringBoot来替换传统的SpringMVC项目。那么如何搭建一个适合开发的项目架构呢? 这里我主要介绍Java程序员使用最多的两种工具进行搭建:1、MyEclipse;2、idea MyEclipse搭建 第一步…

港联证券:2万元股票一进一出手续费?

股市生意中的手续费是出资者无法避免的一项费用。关于许多出资者来说,手续费的多少对出资收益有着重要的影响。本文将从多个视点分析2万元股票一进一出手续费,并讨论其对出资者和商场的影响。 首先,从出资者的视点来看,2万元股票…

数据分析必备原理思路(三)

文章目录 四、图文并茂的数据汇报与观点表达1. 什么是数据表达?2. 数据表达的目的是什么?3. 为什么要基于数据进行表达?4. 如何基于图表进行优质的数据表达?(1)提炼文字观点(2)制作完善图表a. 视觉映射原理与可视化…

偏微分方程为什么要先先验估计再求解的存在性,先验估计有什么用?

见知乎 https://www.zhihu.com/question/43549959?utm_sourceqq&utm_mediumsocial&utm_oi1315073218793488384

国产数据库达梦Dm8部署

点击上方蓝字关注我 1. 部署前工作 1.1 介质下载 下载地址:https://www.dameng.com/list_103.html 结合服务器类型选择对应版本: 1.2 环境检查 硬件环境要求 用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标、内存及磁盘…

米软科技客户单病种上报量云南省第一

近日米软获悉,在云南省统计的单病种上报情况中,截止2021年11月15日,上线单病种系统不足半年的红河州第一人民医院(云南省滇南中心医院)以占全省上报总数5%的22950例,遥遥领先于同省各家二三级医院。 全省上…

SAP 让ALV表格修改后保存到数据库(1.设置图标事件;2.LVC_S_GLAY-EDT_CLL_CB字段直接实现)

SAP ALV报表输出后,用户更改ALV上可编辑的数据,然后保存回SAP内表去,这种需求有两种实现方式 1.给ALV输出界面设置额外工具条按钮来实现 2.ALV 函数 REUSE_ALV_GRID_DISPLAY_LVC 的参数 I_GRID_SETTINGS ,设置 LVC_S_GLAY-EDT_CLL…

LibreOffice中如何插入公式

点击 插入-》对象-》公式对象,调出公式编辑界面: 可以在左侧的下拉列表中选择要插入的公式的种类: 例如,在下拉列表中选择“函数”, 选择要插入的函数,例如指数函数: 在右侧编辑窗口就可…

【Java每日一题】——第四十一题:编写程序描述影视歌三栖艺人。(2023.10.27)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…