Linux 权限理解和学习

news2024/9/27 15:29:33

✨个人主页: Yohifo
🎉所属专栏: Linux学习之旅
🎊每篇一句: 图片来源
🎃操作环境: CentOS 7.6 阿里云远程服务器

  • Don’t argue with the people of strong determination, because they may change the fact.
    • 别和意志坚决的人争论,因为他们可能将改变现实。

天台上的玉龙雪山


文章目录

  • 📘前言
  • 📘正文
    • 📖理解 shell
      • 📃shell的作用
    • 📖权限
      • 📃用户分类
      • 📃用户切换
    • 📖文件权限
      • 📃文件分类
      • 📃权限设置
      • 📃角色划分
      • 📃权限更改
      • 📃文件查看
    • 📖目录权限
      • 📃基础权限
      • 📃默认权限
      • 📃权限掩码
    • 📖粘滞位
      • 📃诞生背景
      • 📃使用方式
  • 📘总结


📘前言

权限,是生活中必不可缺的一部分,比如某某小区的门禁制度、某某影视平台的VIP、某扣空间的黄钻等等,这些都是权限,是区分用户群体的重要方式。Linux 中也需要权限,否则这么大的一个平台就无法规范管理,Linux 中的权限主要是针对文件,比如文件权限目录权限,下面跟着我一起来进行权限的相关学习吧。

各种权限


📘正文

要想理解Linux中的权限,就得先认识认识什么叫shell


📖理解 shell

shell 是包裹在 Linux 内核 kernel 之外的外壳层,因此又称 shell外壳 ,平常我们输入的命令行操作,都是在 shell 外壳上进行的,因为 kernel 内核是不能直接访问的,需要借助 shell 这个中间件,图示如下:
shell外壳
上面是 shell 的理性理解,比较真实,也比较晦涩,下面来说说 shell 的感性理解

  • 假设小明是村长家的儿子,喜欢隔壁的小美
  • 小美是小明家的邻居,从小跟小明一起长大
  • 小王是小明的同学,同时也是小明的竞争对手
  • 王婆是村子里有名的媒婆,有很多实习生跟着王婆学习

背景
场景一、小明托王婆帮他去说媒,王婆派出实习生A去干事,小美同意,指令执行成功,皆大欢喜

场景二、小明托王婆帮他去说媒,但是此时小美已经和小王在一起了,王婆知道事不能成,于是指令执行失败,并反馈 Permission denied(权限拒绝)

场景三、小明非常喜欢小美,但是现在别人已经有对象了,于是他打算求助他的村长爸爸,在村长的要求下,王婆不得不派出实习生A去办事

  • 情况一:小美恰好和小王吵架分手,于是小美接受了小明,指令执行成功
  • 情况二:实习生A被别人暴打一顿,指令执行失败,但王婆并不受影响
  • 情况三:在“超能力”的作用下,小王和小美被拆散,但小美很伤心,整个村子被闹糟糕,指令执行成功,但是环境遭到破坏,可能产生意想不到的后果

上面这个故事中,小明代表用户,他的需求就是输入的指令;村长是超级用户 root ;小美是操作系统,是用户的操作对象;小王是可能存在的权限限制;王婆则是shell外壳,她的实习生是 Linux 中的子进程。而几种场景分别对应着以下几种情况:

  • 权限足够
  • 权限不足
  • 超级用户(root) 下畅通无阻

总结:Linux中,用户是通过 shell 外壳来与操作系统打交道的, shell 会帮忙进行命令行床传递和返回结果,同时 shell 会创建子进程来执行操作。在 CentOS 中,命令行解释器是 bash ,归属于 shell

📃shell的作用

  1. 帮忙进行命令行传递和返回结果
  2. 保护操作系统
  3. 执行命令时,创建子进程来进行执行

基于shell的交互辅助之下,产生了各种各样的权限概念


📖权限

权限是用来限制人的,因为事物可能天然缺失某种属性,所以权限存在的前提是有人进行相关操作

结论:权限 = 人 + 事物属性

📃用户分类

Linux 中存在两种用户,一种是权限非常高的超级用户(root),另一种是由超级用户创建的普通用户

  • 超级用户(root) 是最根本的用户,本质上是整个系统的直接管理员,权限很高
  • 普通用户 除了超级用户外的用户,普通用户能进行大部分系统操作,但在涉及核心部分时,是没有权限的

用户划分

注意: 超级用户几乎能在系统中畅通无助,因此在进行操作时需要特别注意

📃用户切换

Linux 支持在不同的用户之间进行切换,当然也支持切换到超级用户

语法:su [选项] [用户名]

  • su - root 切换至超级用户的家目录中,并显示最近登录信息

功能:切换至指定用户
说明:su 在不加用户名的情况下,默认切换为超级用户

切换


📖文件权限

Linux 中一切皆文件,对文件进行相关设置,就能实现权限划分的效果

文件总览

📃文件分类

Linux中有各种各样的文件,当我们选择查看文件详细信息时,第一行就表示此文件的类型,比如上图中的 - 表示这是一个普通文件
部分文件分类如下:

  • - 普通文件,比如文本文件、可执行文件、归档文件(压缩包)等等
  • d 目录
  • b 块设备(block),比如磁盘文件
  • c 字符设备,比如键盘和显示器
  • p 管道文件
  • s 网络(socket)文件
  • l 链接文件(link)

现在我们最常见的就是普通文件和目录文件,其他类型的文件需要到后期才会接触

注意: 对于 Linux 来说,文件分类是由其详细信息中的第一个字符决定的,与文件后缀没有关系。比如创建文件为 test ,一样可以往里面写入文本信息

文件后缀存在的意义

  • 可以给用户看,更符合使用习惯,Windows判断文件类型靠的是后缀
  • 部分运行在Linux中的软件,需要借助文件后缀判断类型,比如 gcc

后缀

📃权限设置

Linux 中共有三种权限:读 r写 w执行 x

  • r 读权限,能够查看文件相关信息
  • w 写权限,能够对文件进行信息写入,改变文件内容
  • x 执行权限,能够进入目录,执行生成的程序等
  • - 表示此处无权限

比如上图中的 a.out 文件,权限依次为:读写执行、读写执行、读无执行,三组权限对应者不同的角色

三种权限各司,如果在缺失权限的情况下进行操作,那么就会 Permission denied(权限拒绝)
权限拒绝

📃角色划分

Linux 中,除了对用户分类,还对各种角色进行分类

  • 文件拥有者 文件的创造者,理应拥有所有权限
  • 文件所属组 文件所属组群,一般来说,文件所属组与文件拥有者是同一个人,当然可改变,权限也都有
  • Other 其它人,除了上面两类人外的所有人都可以看作 Other ,相当于访客,权限是比较少的一般只有 读 r 权限

角色划分
显然,之前在权限设置时出现的三组权限,分别对应这三个角色

用户与角色并不冲突,普通用户可以有很多个,不同的用户可以对应扮演不同的角色

注意: 超级用户不受这些角色权限的限制,默认拥有所有权限,由此可见,root is God,在执行某些操作时,如果权限不够,可以通过 sudo 指令进行提权,相当于单次授权完成此操作(sudo 指令需要提前进行配置)

📃权限更改

普通用户在自己家中几乎是不受限制的,毕竟是自己家(Linux 默认不支持普通用户相互访问其空间),因此用户可以对指定文件进行权限设置,需要借助指令 chmod

语法:chmod u/g/o/a +/- r/w/x [文件]
功能:给指定文件进行权限设置
说明:u 为拥有者,g 为所属组,o 为Other,a 表示所有角色,而 +和- 表示添加或减少权限,可通过 , 号进行多组设置

chmod
注意: 除了直接 + - 权限外,还可以通过八进制数字改变权限,比如 chmod 000 test.txt 可以将 test 文件中所有角色的权限清零

下图中,1表示有权限,0表示无权限
chmod

📃文件查看

有个命令可以查看文件的类型及更多信息,使我们能够更清楚文件类型

语法:file [文件]
功能:查看文件类型信息
说明:当输入指令后,会输出对应类型的英文说明

file


📖目录权限

目录也有权限,不过与文件略有差异,因为目录和文件有区别

📃基础权限

目录的基础权限也是 读 r写 w执行 x

  • r 读权限,查看当前目录下的文件名和文件属性
  • w 写权限,在当前目录下创建新文件
  • x 执行权限,能够进入目录
  • - 表示此处无权限

示例:
可执行权限

📃默认权限

无论是创建文件还是创建目录,系统都会分配默认权限

文件

  • 文件的默认权限为 664rw-rw-r--
  • 因为一般文件都是不需要执行的,所以所有角色都没有分配可执行权限,而且为了保证文件的安全性,没有给 Other 改变(写入)文件的权限

目录

  • 目录默认权限为 775rwxrwxr-x
  • 前面说过,没有可执行权限是无法进入目录的,因此此时系统只是没有给 Other 写入文件的权限

📃权限掩码

其实所有文件一开始权限都是放开的,即 666 ,而目录文件起始权限为 777 。这时称为起始文件,为了更好的控制文件权限,系统通过 权限掩码(umask) 来取消部分角色的权限,比如 Other 的写入权限,取消后就是默认权限

CentOS 7.6中,权限掩码为 0002 ,平台不同,权限掩码可能存在差异

默认权限的计算方式

  • 默认权限 = 起始权限 & (~umask)

权限掩码
目录默认权限的计算也是如此

注意: 可以直接通过 umask 指令查看当前系统的默认掩码值;默认权限的计算,并不是单纯起始权限 - 权限掩码这么简单,需要特别注意是先将掩码按位取反后与上起始权限


📖粘滞位

粘滞位是一个比较特殊的存在,它是为了在某些特定场景下设置的权限

📃诞生背景

在某讯中,有种制度叫 赛马制度 ,就是让组A和组B开发同一个功能,然后择优选取

假设没有设置粘滞位,当组A的小王完成功能设计后,组B的小张虽然不能查看小王的工作内容(因为没有读写权限),但是他可以直接删除小王的工作文件,这很不合理

粘滞位

于是就有了粘滞位,简单来说可以限制目录,使当前目录下的文件只允许拥有者和超级用户删除

📃使用方式

很简单,创建一个共享目录后,借助超级用户的身份,通过 chmod +t [目录] 的方式,为这个共享目录添加粘滞位就行了,粘滞位添加成功后,该共享目录的Other 可执行权限变为 t
粘滞位

如果想在设有粘滞位的共享目录中删除别人的文件,会发生这样的事:
强制删除


📘总结

以上就是Linux中权限的相关内容了,我们从shell引出权限问题,再到最后的粘滞位保护权限,中间还介绍了如何更改权限及各种角色划分,相信你在看完本文后,一定能收获很多知识

如果你觉得本文写的还不错的话,期待留下一个小小的赞👍,你的支持是我分享的最大动力!

如果本文有不足或错误的地方,随时欢迎指出,我会在第一时间改正

星辰大海

相关文章推荐
听说Linux基础指令很多?这里都帮你总结好了

感谢支持

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

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

相关文章

AtCoder Beginner Contest 283 Ex. Popcount Sum(类欧经典问题:数x在二进制表示下第k位的值)

题目 t(t<1e5)组样例&#xff0c;每组样例给定n,m,r(1<m<n<1e9,0<r<m) 求[1,n]这n个数中&#xff0c;所有满足i%mr的数i的二进制的1的个数之和 即&#xff1a;&#xff0c; 其中&#xff0c;__builtin_popcount(i)统计的是i的二进制表示中&#xff0c;1的…

Web APIs

文章目录一. Web API介绍1. Web APIs 和 JS 基础关联性1.1 JS 的组成1.2 JS 基础阶段以及 Web APIs 阶段2. API的概念[3.Web API的概念](https://developer.mozilla.org/zh-CN/docs/Web/API)4. API 和 Web API 总结二. DOM 介绍1. DOM 简介1.1 什么是 DOM1.2 DOM 树2. 获取元素…

Linux-6 三剑客命令

Linux-6 三剑客命令 awk&#xff08;取列&#xff09; 将系统的IP地址打印出来 [rootdestiny ~]# yum install net-tools -y #分析&#xff1a;#1.肯定是需要拿到IP地址&#xff0c;仅看某一个特定的网卡&#xff1b;ifconfig#2.先想办法过滤出数据的那一行&#xff1b; ###行#…

5)Django Admin管理工具,Form组件,Auth

目录 一 Django Admin管理工具 激活管理工具 使用管理工具 复杂模型 自定义表单 内联(Inline)显示 列表页的显示 二 django Form组件 局部钩子和全局钩子 三 Django 用户认证&#xff08;Auth&#xff09;组件 一 Django Admin管理工具 Django 提供了基于 web 的管理…

年终报告撰写小技巧,你学会了吗?

年年岁岁花相似&#xff0c;岁岁年年人不同。 临近年底&#xff0c;又到了一年一度的年终报告时段了。同事间见面最让人头疼的问候&#xff0c;莫过于&#xff0c;“你的年终报告写了吗&#xff1f;” 有的人东拼西凑、应付了事&#xff0c;汇报内容乏善可陈&#xff0c;领导…

美美的圣诞树画出来-CoCube

2022年圣诞节到来啦&#xff0c;很高兴这次我们又能一起度过~ CSDN诚邀各位技术er分享关于圣诞节的各种技术创意&#xff0c;展现你与众不同的精彩&#xff01;参与本次投稿即可获得【话题达人】勋章【圣诞快乐】定制勋章&#xff08;1年1次&#xff0c;错过要等下一年喔&#…

尚医通-上传医院接口实现(十八)

目录&#xff1a; &#xff08;1&#xff09;上传医院接口-基础类的创建 &#xff08;2&#xff09;数据接口-上传医院接口-初步实现 &#xff08;3&#xff09;上传医院接口-最终实现 &#xff08;1&#xff09;上传医院接口-基础类的创建 复制相关的工具类&#xff1a;这…

Redis Windows版安装和使用

下载地址&#xff0c;亲已测试可放心使用 https://github.com/tporadowski/redis/releases Redis安装和基本使用&#xff08;windows版&#xff09; 1.Redis简介 完全开源免费的高性能的key-value的数据库 支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&…

【函数】一篇文章带你看懂控制流、递归、高阶函数

目录 控制流 条件语句 迭代语句 示例&#xff1a;质因数分解 递归 示例&#xff1a;阶乘 示例&#xff1a;斐波那契数列 示例&#xff1a;判断奇偶数 高阶函数 lambda 表达式 设计函数 示例&#xff1a;累加计算 示例&#xff1a;柯里化 Lab 1: Functions, Control …

个人能用的短信平台有哪些?看这一篇就够了

对于程序员个人来说&#xff0c;在做开发或者是接项目的时候&#xff0c;常常会用到发送短信功能模块&#xff0c;而自己写这个模块会要相当多的精力和时间&#xff0c;去找短信平台来解决问题&#xff0c;已经成了不少程序员的共识。 但市面上的短信平台确实很杂&#xff0c;鱼…

服务注册与发现原理

一、什么是服务注册与发现&#xff1f; 服务注册与发现就是一套管理微服务的组件&#xff0c;方便各拆分的服务平滑上线和下线&#xff0c;以及某个服务出现故障自动剔除。其实质就是维护一张记录各在线服务的表。让消费服知道服务在线可以请求。。。。。。 二、服务注册与发现…

SQL限制

SQL限制目录概述需求&#xff1a;设计思路实现思路分析1.URL管理参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Survive. happy…

PLL实验

PLL实验 开发板上面只有一个200MHz时钟输入&#xff0c;对于其它频率的时钟怎么办&#xff1f; 介绍 其实在很多 FPGA 芯片内部都集成了 PLL &#xff0c;其他厂商可能不叫 PLL &#xff0c;但是也有类似的功能模块&#xff0c;通过 PLL 可以倍频分频&#xff0c;产生其他很…

pytorch搭建yolov3网络

yolov3的整体网络结构 主要包含了两个部分。左边的Darknet-53主干特征提取网络主要用于提取特征。右边是一个FPN金字塔结构。 主干特征提取网络&#xff08;提取特征&#xff09; import math from collections import OrderedDict import torch.nn as nn#------------------…

MySQL事务相关知识

实践阅读&#xff1a;一文彻底读懂MySQL事务的四大隔离级别 1、什么是事务&#xff1f; 数据库事务&#xff08;简称&#xff1a;事务&#xff09;&#xff0c;是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成&#xff0c;这些操作要么全…

AcWing 4645. 选数异或(预处理小区间 + 二分优化找)

题目如下&#xff1a; 题解 or 思路 在 [l,r][l, r][l,r] 区间内找到两个数 a,ba, ba,b 使得 a ^ b x 通过异或的性质&#xff1a; a ^ b ^ b x ^ b > a x ^ b 我们可以通过 b 可以迅速找到 a, a x ^ b 我们可以现预处理出所有小区间(大区间可以不需要&#xff0c;因为…

win11怎么分回c盘空间

有网友反映自己的win11系统有多个分区&#xff0c;c盘分区的空间比较小&#xff0c;便想通过win11分盘功能&#xff0c;将临近的磁盘空间分给c盘。那么win11怎么分回c盘空间&#xff1f;下面就教下大家win11将其他盘空间分回c盘的方法步骤。 工具/原料&#xff1a; 系统版本&am…

最近几年-基于深度学习自然语言处理的推荐系统-必读论文整理分享

基于内容的推荐&#xff08;Content-based Recommendation&#xff09;是信息过滤技术的延续与发展&#xff0c;它是建立在项目的内容信息上作出推荐的&#xff0c;而不需要依据用户对项目的评价意见&#xff0c;更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用…

02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?

1.模型 堆里面分为新生代和老生代&#xff08;java8 取消了永久代&#xff0c;采用了 Metaspace&#xff09;&#xff0c;新生代包含 EdenSurvivor 区&#xff0c;survivor 区里面分为 from 和 to 区. 内存回收时&#xff0c;如果用的是复制算法&#xff0c;从 from 复制到 to…

项目实战之旅游网(十三)前台产品详情 前台收藏

目录 一.前台产品详情 1.查询产品 2.收藏按钮 二.前台收藏 本章的代码会统一放到最后。 一.前台产品详情 1.查询产品 即点击“查看详情”即可得到这个产品的详细描述。 并且项目运行起来之后&#xff0c;可以在后台新建新的产品&#xff0c;在前台可以实时查询到。 2.…