【Linux】权限的深度解析

前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念

💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:Linux的学习 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
在这里插入图片描述


目录

  • Linux权限的概念
  • Linux权限管理
    • 文件访问者的分类(人)
    • 文件类型和访问权限(事物属性)
      • 文件类型
      • 基本权限
    • 文件访问权限的相关设置方法
      • 修改文件的拥有者
      • 更改文件的所属组
    • 查看或修改文件权限掩码
    • linux下目录的权限
    • 粘滞位


Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

在上一篇文章中我们详细的讲解了如何从普通用户切换成超级用户如果有不懂的可以去看一下上一篇文章Linux下基本指令


Linux权限管理

文件访问者的分类(人)

对于任意一个文件在被创建出来的时候就会将未来的访问者分为三类:拥有者、所属组、其它用户(other)

  1. 文件和文件目录的所有者(拥有者):我们可以直接理解成创建这个文件的人,也可以说成这个文件是他的
  2. 其它用户(other):我们可以理解成外界访问者,例如外国人来中国那么这个外国人就是other
  3. 文件和文件目录的所有者所在的组的用户(所属组):我们可以通俗的理解成你是一个组的组长,这个文件的组长给你们这个组开发了权限,只有你们这个组可以看到。(如下图)
  4. 当然了对于超级用户(root)他可以随意访问这些文件
    在这里插入图片描述

文件类型和访问权限(事物属性)

Linux系统不是以文件名后缀区分文件类型的,而是通过ll指令显示的第一个字符区分文件类型的!
在这里插入图片描述


文件类型

符号文件类型
-表示普通文件
d表示目录
l表示符号链接
b表示块设备文件
c表示字符设备文件
s表示套接字
p表示管道

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

基本权限

Linux系统中,文件的权限属性分为三类:r(读-4)、w(写-2)、x(可执行-1)

  1. 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

字符表示:

权限符号说明
r – –只读
– w –仅可写
– – x仅可执行
rw –可读可写
– wx可写可执行
r – x可读可执行
rwx可读可写可执行
– – –无任何权限

8进制数值表示:

权限符号八进制二进制
r – –4100
– w –2010
– – x1001
rw –6110
– wx3011
r – x5101
rwx7111
– – –0000

实例演示在这里插入图片描述


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

chmod指令
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

符号模式说明
u代表所有者权限
g代表组的权限
o代表其他用户权限
a代表所有权限
+增加权限
-移除权限
=设置权限

示例一:

对文件的其它人增加执行和写的权限
在这里插入图片描述
示例二
去掉文件的所属组的写的权限
在这里插入图片描述

示例3
使用三位八进制数字

在这里插入图片描述
示例4
对整体指令进行修改
在这里插入图片描述
这里再次强调,无论开放与不开放权限,root都可以为所欲为


修改文件的拥有者

chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
-R:递归地更改目录及其所有子目录中的文件的所有者和所属组。
-h:如果目标文件是符号链接,则会改变链接本身的所有者和所属组,而不是链接所指向的文件的所有者和所属组。
注意:要执行chown命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所有者和所属组。


[wei@Centos ~]$ chown user1:group1 file.txt
#将文件file.txt的所有者更改为user1,所属组更改为group1。
[wei@Centos ~]$chown -R user1:group1 directory/
#递归地更改目录及其所有子目录中的文件的所有者和所属组
#将目录directory及其所有子目录中的文件的所有者更改为user1,所属组更改为group1

更改文件的所属组

chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
注意:要执行chgrp命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所属组。

[wei@Centos ~]$ chgrp group1 file.txt
#chgrp group1 file.txt
[wei@Centos ~]$chgrp -R group1 directory/

查看或修改文件权限掩码

umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

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

格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
最终权限 = 默认权限 & (~umask)
实例演示unmask的修改:

[wei@Centos ~]$ umask 755
[wei@Centos ~]$ umask
0755
[wei@Centos ~]$ umask 044
[wei@Centos ~]$ umask
0044


linux下目录的权限

刚刚我们了解了普通文件的rwx可读可写可执行,现在来看看目录的rwx的含义:

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

粘滞位

在Linux中,粘滞位(Sticky Bit)是一种特殊的文件权限设置,它可以应用在目录上。当一个目录被设置了粘滞位后,只有目录的所有者和超级用户可以删除或重命名目录中的文件,其他用户只能删除或重命名自己所拥有的文件。
粘滞位主要用于公共目录,例如/tmp,以确保其他用户无法删除或篡改其他用户的文件。下面是在Linux中使用粘滞位的方法:

[wei@Centos ~]$ chmod +t 目录名称

[wei@Centos ~]$chmod +t /tmp

需要注意的是,粘滞位只能应用于目录,而不能应用于文件。另外,设置粘滞位的操作需要超级用户权限。


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


🫵🫵🫵 这里也祝各位寒假快乐哦 💞

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

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

相关文章

全流程机器视觉工程开发(一)环境准备,paddledetection和labelme

前言 我现在在准备做一个全流程的机器视觉的工程,之前做了很多理论相关的工作。大概理解了机器视觉的原理,然后大概了解了一下,我发现现在的库其实已经很发展了,完全不需要用到非常多的理论,只需要知道开发过程就可以…

HFSS笔记/信号完整性分析(一)——常用快捷键+建模技巧

文章目录 1、常用快捷键2、常用建模技巧2.1 如何由一个无厚度的sheet生成一个有厚度的2.2 如何绘制T形截面的传输线?2.3 自动建立辐射边界法一、法二、 仅做笔记整理与分享。 1、常用快捷键 快捷键功能CtrlDfit it all 以合适的尺寸至于窗口中间CtrlH隐藏object或者…

【XTuner 大模型单卡低成本微调实战】学习笔记

参考学习教程【XTuner 大模型单卡低成本微调实战】 理论 Finetune简介 大语言模型 微调模式 增量预训练 指令跟随微调 LoRA和QLoRA Xtuner介绍 实战 自定义微调 用 Medication QA 数据集进行微调 将数据转为 XTuner 的数据格式 目标格式:(.jsonL) 写提示词请C…

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)

难度参考 难度:简单 分类:熟悉OJ与IDE的操作 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。 题目 A B1. A B - AcWing题库财务管理1004:财…

C语言学习之字典(单词拆分)

实例要求: 1、给定字符串以及字符串列表作为字典; 2、判断是否可以利用字典中出现的单词拼接出字符串; 3、不要求字典中出现的单词全部都使用; 4、字典中的单词可以重复使用; 实例分析: 1、初始化数组…

对java的interface的理解

一个例子来让我们理解更加深刻 这是我们的整体文件布局 ①A是接口 ②B和C是用来实现接口的类 ③show是我们的运行函数,用来展示 A接口 接口中定义的方法可以不用去实现,用其他类去实现(必须实现) 关键字:interface public interface A { // public static …

Android Activity的启动流程(Android-10)

前言 在Android开发中,我们经常会用到startActivity(Intent)方法,但是你知道startActivity(Intent)后Activity的启动流程吗?今天就专门讲一下最基础的startActivity(Intent)看一下Activity的启动流程,同时由于Launcher的启动后续…

JavaEE学习笔记 2024-1-12 --Tomcat服务器、Servlet

JavaEE 个人整理非商业用途,欢迎探讨与指正!! JavaEE是企业级开发 是综合性非常强的阶段  包含的知识点:JavaSE,MySQL,JDBC,WEB(HTML,CSS,JS,前端框架),Servlet,JSP,XML,AJAX等技术 目录 JavaEE1.服务器2.Tomcat服务器2.1Tomcat的使用2.2Tom…

【驱动】I2C驱动分析(二)-驱动框架

I2C驱动框架简介 I2C 驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,系统的整体框架如下所示。 最上层是应用层,在应用层用户可以直接用open read write对设备进行操作,往下是设备驱动层&a…

SpringBoot 中使用 Quartz 创建定时任务

文章目录 一、使用示例二、运行原理 一、使用示例 自定义 job: Slf4j public class MyJob extends QuartzJobBean {Overrideprotected void executeInternal(JobExecutionContext context) throws JobExecutionException {log.info("MyJob start...");l…

【unity】麦克风声音驱动,控制身体做出不同动作

1.在角色对象上挂在animator组件,并将动作控制器与其关联 2.在角色对象上挂在audio source组件。 3.新建voice control脚本,编写代码如下: using System; using System.Collections; using System.Collections.Generic; using UnityEngine;…

【OJ】牛客链表刷题

题目 1. 链表分割1.1 题目分析1.2 代码 2. 链表的回文结构2.1 题目分析2.2 代码 这里两道与链表有关的题目均来自牛客。 1. 链表分割 1.1 题目分析 因为这里代码不能选择用c语言写,所以选择用c,因为c兼容c。 题目要求分割链表,我们可以直接弄成两个带哨…

Codeforces Round 915 (Div. 2) D题 单调栈,特殊情况入手

Problem - D - Codeforces 目录 题意: 思路: 把0放后面: ———— 然后看懂下面思路,理解单调栈: 细节: 核心代码: 题意: mex指的是该数组缺的最小的自然数,例如…

2024最有发展潜力的代理项目!格行随身wifi代理项目分析测评,轻资产靠谱创业项目推荐

最近很多网友都有创业的想法,身边创业的朋友也不在少数,当然有成功的,也有亏的血本无归的。最近网上也有很多适合新手的创业或代理项目,什么单身经济啊,大健康啊还有创业圈一直在讨论的随身WiFi代理等。当然一些创投圈…

大文件的断点续传如何实现

断点续传 断点续传是一种数据恢复技术,主要用于在读取或发送数据时,因为网络问题、磁盘问题等原因导致数据传输中断。断点续传技术允许你在已经传输的数据基础上继续传输,从而节省数据传输时间。 断点续传通常用于文件传输过程中,…

由于找不到d3dcompiler_43.dll缺失,无法打开软件的解决方法分享

d3dcompiler43.dll是什么文件?为什么会出现丢失的情况?又该如何解决呢?本文将详细介绍d3dcompiler43.dll的作用和影响,并提供6个有效的解决方法。 一、d3dcompiler43.dll是什么文件? d3dcompiler43.dll是DirectX SDK…

SQL注入入门进阶_报错注入、延时注入、python脚本盲注

SQL注入入门进阶 学习目标 本篇文章入门SQL注入,除了回显的SQL注入还存在报错注入、布尔盲注和延时注入。如果sqlmap跑不出来的还可以使用burp intrude注入或者使用python编写脚本注入。 报错注入 concat() 函数的意思是讲,全部内容连成一个字符串&a…

书生·浦语大模型实战营第五节课笔记及作业

LMDeploy 大模型量化部署实践 1 大模型部署背景 1.1 模型部署及大模型特点 1.2 大模型部署挑战及方案 2 LMDeploy简介 2.1 核心功能-量化 2.2 核心功能-推理引擎TurboMind 2.1 核心功能-推理服务api server 3 动手实践及作业 按照文档LMDeploy 的量化和部署中的步骤在Intern…

【MIdjourney】一些材质相关的关键词

1.多维剪纸(Multidimensional papercut) "Multidimensional papercut"(多维剪纸)是一种剪纸艺术形式,通过多层次的剪纸技巧和设计来创造出立体感和深度感。这种艺术形式通常涉及在不同的纸层上剪裁不同的图案,并将它们…

鸿蒙开发-UI-布局-线性布局

鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 鸿蒙开发-UI-组件-状态管理 鸿蒙开发-UI-应用-状态管理 鸿蒙开发-UI-渲染控制 鸿蒙开发-UI-布局 文章目录 前言 一、基本概念 二、布局子元素 1.子元…