【Linux】-权限

 🔑🔑博客主页:阿客不是客

🍓🍓系列专栏:深入代码世界,了解掌握 Linux

欢迎来到泊舟小课堂

😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注

一、权限的概念

在Linux 中,权限是控制用户对文件和目录访问的一种机制。每个文件和目录都有三种基本权限:读取(r)、写入(w)执行(x)。这些权限分别适用于三类用户:文件的拥有者
(u)、文件所属组的用户(g)和其他用户

1.1 用户的分类

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以再linux系统下做任何事情,不受限制

  • 普通用户:在linux下做有限的事情。

  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

1.2 语法

su [用户名]

切换用户之后,想要退回上次用户可以用Ctrl + d 实现,也可以用exit 指令实现。 

1.3 sudo指令

但是有时候我们并不知道root 用户的密码,但是又需要root 用户去执行某条指令,那么这时就需要输入指令 sudo 指令 ,这条指令就可以提升我们要执行指令的权限,即让root 用户执行。但是使用这个指令有一个条件就是root 用户将此普通用户添加到可信任白名单中。

如果要将某个用户添加进入可信任白名单中,首先在root 用户下,通过指令 vim /etc/sudoers对应文件。

然后我们就可以使用sudo 指令 来提升指令时的权限。

二、 Linux权限管理

2.1 用户划分

在Linux中,为了方便管理文件,还对我们的用户或者文件访问者进行了分类:

  • 用户(u-User):文件或目录的所有者
  • 组(g-Group):文件或目录所属的用户组
  • 其他用户(0-Others):除所有者和所属组之外的所有其他用户

因为other可能存在多个,所以除了文件拥有者和文件所属组之外的都叫other

2.2 文件类型和权限

2.3.1 文件类型

  • d:文件夹
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

2.3.2 基本权限

  • 读取(r):允许查看文件内容或列出目录内容。
  • 写入(w):允许修改文件内容或在目录中创建、删除文件。
  • 执行(x):允许执行文件或进入目录。
  • “—”:表示不具有该项权限

每个组的三个权限为 r w x,顺序不能改变,以下为详细解析:

字符表示法说明
r - -仅可读
- w -仅可写
- - x仅可执行
r w -可读可写
r - x可读可执行
- w x可写可执行
r w x可读可写可执行
- - -无权限

其实除了这种表示方法之外还有一种表示方法那就是八进制表示法,如下图:

字符表示法二进制八进制数值表示法说明
r - -1004仅可读
- w -0102仅可写
- - x0011仅可执行
r w -1106可读可写
r - x1015可读可执行
- w x0113可写可执行
r w x1117可读可写可执行
- - -0000无权限

 这种方式写起来更加方便,不需要使用用户符号+/-权限字符的方式,这在下面会提到

2.3 权限管理

2.3.1 修改文件权限

在了解权限的分类之后,我们接下来学习如何更改文件的访问权限:

语法:chmod 选项 权限 文件名

修改方法:chomd 用户符号+/-权限字符 文件

  • 用户符号:u:拥有者,g:所属组,o:other,a:所有用户。
  • 权限字符:r:读取,w:写入,x:执行

注:

  1. 用户只能修改自己的文件权限
  2. 没有权限系统会拒绝访问
  3. 确定权限信息时,系统会先确定用户属性,是拥有者,所属组,还是other用户角色确定,只确定一次,顺序是:拥有者,所属组,other。如果先确定了是拥有者,但没有部分权限,即使所属组拥有权限,也不能进行对应操作
  4. root 用户不受权限约束
  5. 可执行权限需要文件本身是一个可执行文件(例如.c文件)

2.3.2 修改文件拥有者和所属组

  1. 语法:chowm  选项  修改后的拥有者  指定文件名或者目录名
  2. 功能: 修改文件的拥有者。
  1. 语法:chgrp  选项  修改后的所属组  指定文件名或者目录名
  2. 功能: 修改文件的所属组。

注:此类修改需要高权限(sudo指令或者root权限)

 2.4 目录权限 

对于普通文件来说,可读,可写,可执行这种字面含义就能帮助我们理解其权限的作用,但是对于目录来说,就有所区别了。

  1. 可读权限: 如果用户没有该目录的可读权限,则无法通过ls指令查看目录中的文件内容。
  2. 可写权限: 如果用户没有该目录的可写权限,则无法通过一系列指令在目录中创建文件或删除文件。
  3. 可执行权限: 如果用户没有该目录的可执行权限,则无法通过cd指令进入到目录当中。

2.5 文件掩码

实际上,新建文件的默认权限为666(rw- rw- rw-),新建目录的默认权限为777(rwx rwx rwx),其中第一位与特殊权限相关,这里我们不需要深究。但是实际上新建文件与目录的默认权限并不如上所说,这是怎么回事呢?

其实这种情况就与我们的文件掩码 umask 有关了,最终权限是是默认权限(mask)和umask取反后按位与的结果(mask & ~(umask))

其中需要注意的是:root用户的默认掩码为0022,而普通用户为0002。

umask的目的:希望在umask中出现的权限,都不应该在最终权限中出现

为什么要用umask

  1. 默认权限由系统自主决定,无法在创建时更改,umask可以让系统可配置,可灵活满足不同需求
  2. 特殊情况下,不同系统的默认权限可能不同,通过配置umask,可以在一定程度上控制文件的默认权限,让代码可控性更强

我们可以通过这个指令 umask 八进制数字 来修改umask的值 

2.6 粘滞位

我们在项目开发中会发现一种问题,我没有权限对一个文件进行写入和读取,但却能删除,这是为什么呢?

一个文件能否被删除与自身的权限无关,与所处的目录权限有关,虽然这个文件的权限为root,权限设置了无法进行任何操作,但因为我在文件所在的目录拥有写入权限,所以能对目录里面的文件进行删除。

所以了为了解决这个问题就引入了粘滞位的概念。

为目录添加粘滞位特别简单只需要输入指令:chmod +t 目录名

  • 粘滞位只对目录有效,对文件无效
  • 设置粘滞位后,其他用户仍然可以修改文件内容,但不能删除或移动文件。

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

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

相关文章

“新物种”即将上线,极氪MIX是近几年最“好玩”的新车?

像极氪MIX这样有创意的新能源车 除了概念车外,市面上真的很少能看到类似的量产车 别致可爱的造型、新颖的对开门设计、百变的空间布局 同时兼顾了MPV大空间以及SUV的操控乐趣和通过性 妥妥的“新物种” A级车车长D级车轴距,配合隐藏式双B柱电动对开…

【uniapp+Typescript】300行代码手撸了一个多端图片比较组件

今天刚新鲜出炉的。DCloud市场上的看了下,都不好用,于是自己撸了个。基于unibestccframe框架。 用户图片对比,支持滑块拖动对比、图片放大缩小、下载这些基本功能。 左右对比模式还没写,等什么时候想弄了,再来更新。…

化繁为简,使用 ADManager Plus 简化账户生命周期管理

在 IT 环境中,编排指的是对工作流、应用程序和系统的协调管理,旨在通过简化流程来优化业务性能。IT 管理员可以通过编排,从单个控制台自动执行一系列任务,例如预配账户帐户、数据库管理、事件处理、应用程序和云资源管理。编排对支…

第23章 - Elasticsearch 洞悉你的查询:如何在上线前发现潜在问题!

文章目录 1. 前言2. Profile API - 查询优化2.1 Profile API 简单介绍2.2 查询结果图形化2.3 Profile 注意事项 3. Explain API - 解释查询 1. 前言 在第 21 章中,我介绍了 Elasticsearch 的读优化,但你是否曾疑惑:如何在上线前判断查询的耗…

springboot基于Java的民宿山庄农家乐系统设计与实现

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不…

Mojo在Windows上详细安装步骤

Mojo官方文档是基于Linux写的,在Windows上基于WSLUbuntu安装还有些细节问题需要注意,完整安装步骤整理如下: 1.Windows版本必须是Windows10以上,而且版本≥1903,或者内部版本≥18362,若不满足,…

渗透测试实战—教育攻防演练中突破网络隔离

免责声明:文章来源于真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本…

【redis】热点key问题

【redis】热点key问题 【一】什么是热点key问题【二】什么样的key被称为热key【三】热点Key问题的危害【四】如何监控发现热点key【五】热点Key的解决方案【1】使用二级缓存【2】将热key分散到不同的服务器中【3】热key拆分【4】将核心/非核心业务做Redis的隔离 【六】业界已有…

C语言指针(1)

指针一句话就是存储地址的一个变量,当你想要拿到一个地址就需要用到&运算符。 如果要拿数组的地址就不用&运算符,因为数组名就是数组首元素的地址。 int main() {int pa0;int* p&pa;int arr[3]{1,2,3};int* qarr;printf("%d",*p)…

【linux】线程 (三)

13. 常见锁概念 (一)了解死锁 死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程占有的,且不释放的资源,而处于的一种永久等待状态 (二)死锁四个必要条件 互斥条件…

基准线markLine的值超过坐标轴范围导致markline不显示

解决问题:动态设置yAxis的max值(解决基准线不在y轴范围) yAxis: [{name: 单位:千,...yAxis,nameTextStyle:{...yAxis.nameTextStyle,padding: [0,26,0,24]},paddingLeft:24,paddingRight:26},{name: 单位:百分比,...yA…

Java开发中知识点整理

正则表达式 测试网址 List<?> List<List<Object>> dataList (List<List<Object>>) httpResponseBody.getData();for (List<Object> data : dataList) {DataSourceEntity dataSource new DataSourceEntity(dataSourceEntity);dataSou…

【二刷hot100】day 4

终于有时间刷刷力扣&#xff0c;求实习中。。。。 目录 1.最大子数组和 2.合并区间 3.轮转数组 4.除自身以外数组的乘积 1.最大子数组和 class Solution {public int maxSubArray(int[] nums) {//就是说可以转换为计算左边的最大值&#xff0c;加上中间的值&#xff0c…

Git的原理和使用(六)

本文主要讲解企业级开发模型 1. 引入 交付软件的流程&#xff1a;开发->测试->发布上线 上面三个过程可以详细划分为一下过程&#xff1a;规划、编码、构建、测试、发 布、部署和维护 最初&#xff0c;程序⽐较简单&#xff0c;⼯作量不⼤&#xff0c;程序员⼀个⼈可以完…

一文详解“位运算“在算法中的应用

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; 优选算法专题 目录 位运算的相关介绍&#xff08;重要&#xff09; 136. 只出现一次的数字 191.位1的个数 461. 汉明距离 260. 只出现一…

大模型的经典面试问题及答案,非常详细收藏我这一篇就够了

大语言模型&#xff08;LLM&#xff09;在人工智能中变得越来越重要&#xff0c;在各个行业都有应用。随着对大语言模型专业人才需求的增长&#xff0c;本文提供了一套全面的面试问题和答案&#xff0c;涵盖了基本概念、先进技术和实际应用。如果你正在为面试做准备&#xff0c…

【优选算法篇】在分割中追寻秩序:二分查找的智慧轨迹

文章目录 C 二分查找详解&#xff1a;基础题解与思维分析前言第一章&#xff1a;热身练习1.1 二分查找基本实现解题思路图解分析C代码实现易错点提示代码解读 1.2 在排序数组中查找元素的第一个和最后一个位置解题思路1.2.1 查找左边界算法步骤&#xff1a;图解分析C代码实现 1…

国产大模型基础能力大比拼 - 计数:通义千文 vs 文心一言 vs 智谱 vs 讯飞-正经应用场景的 LLM 逻辑测试

在大语言模型&#xff08;LLM&#xff09;不断涌现的时代&#xff0c;如何评估这些国产大模型的逻辑推理能力&#xff0c;尤其是在处理基础计数问题上的表现&#xff0c;成为了一个备受关注的话题。随着越来越多的国产大模型进入市场&#xff0c;比较它们在不同任务中的表现尤为…

群晖通过 Docker 安装 Gitea

1. 准备工作 1.1 安装 docker 套件 2.2 安装MySQL&#xff08;可选&#xff09; 群晖通过 Docker 安装 MySQL-CSDN博客 如果安装了MySQL&#xff0c;可以创建gitea用户和gitea_db数据库&#xff0c;并且赋予权限 #创建数据库 CREATE DATABASE gitea_db; #确认数据库已创建…

【Jenkins】2024 最新版本的 Jenkins 权限修改为 root 用户启动,解决 permission-denied 报错问题

最新版本的 Jenkins 修改 /etc/sysconfig/jenkins 中的 JENKINS_USERroot不会再生效&#xff0c;需要按照以下配置进行操作&#xff1a; vim /usr/lib/systemd/system/jenkins.service然后重启就可以了 systemctl daemon-reload # 重新加载 systemd 的配置文件 systemctl res…