Linux权限解析

目录

shell命令以及运行原理

Linux权限概念

切换用户

Linux权限管理

文件访问者分类

文件类型和访问权限

Linux下的文件后缀

文件权限值的表示方法

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

文件掩码

目录权限

粘滞位

目录权限总结

 关于权限的总结


shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为核心(kernel,但我们一般用户,不能直接使用kernel
而是通过 kernel 外壳 程序,也就是所谓的 shell ,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel
从技术角度, Shell 的最简单定义:命令行解释器( command Interpreter )主要包含:
将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者
对比 windows GUI ,我们操作 windows 不是直接操作 windows 内核,而是通过 图形接口 ,点击从而完成我们的操作( 比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序 )。
shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析, 解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
帮助理解:如果说你是一个闷骚且害羞的程序员,那 shell 就像媒婆,操作系统内核就是你们村头漂亮的且有让你心动的MM 小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash

 

简而言之,外壳就是我们与内核进行交互的媒介;就好像我们通过代码语言和计算机进行交互;

Linux权限概念

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

1.超级用户可以随意的操作系统,可以制造规则,但可以不遵守规则;
2.普通用户需要严格的遵守使用规则,有些指令是没有权限使用的,比如"yum"命令安装软件,但是必要时普通用户可以向超级用户申请对应对的权限;
3.Linux下的每个用户都要有自己的密码,尽量不要重复;

切换用户

命令 su [ 用户名 ]
功能 :切换用户。
例如,要从 root 用户切换到普通用户 user ,则使用 su user 。 要从普通用户 user 切换到 root 用户则使用 su root( root 可以省略),此时系统会提示输入 root 用户的口令
注意:超级用户切换到普通用户是不需要密码的,但是普通用户切换到超级用户需要输入超级用户的密码;

Linux权限管理

文件访问者分类

文件和文件目录的所有者: u---User(拥有者) (中国平民 法律问题)
文件和文件目录的所有者所在的组的用户: g---Group(所属组) (不多说)
其它用户: o---Others (其他人) (外国人)

这里的权限大小关系是:拥有者>所属组>其他用户;我们使用的普通用户属于其他用户.而拥有者和所属组是同伙,而其他用户是另一伙;

拥有者和其他用户都能够理解,但是为什么会出现所属组分类呢?

在我们的工作中呢,为了提高工作的效率,通常是以小组为单位进行的,所以小组内的成员都是自己人,也需要对系统进行操作,但是不能算是其他人,所以出现了权限大小在拥有者和其他人之间的角色;

这样就既可以做到防止其他小组的抄袭,又可以让自己小组的成员看到内容;这样的权限分类有利于公司各个小组之间相互竞争,又可以维持秩序;

文件类型和访问权限

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

Linux下的文件后缀

在Linux下的文件的后缀是没有意义的,但是是需要的,什么意思呢?

将文件编译好之后,无论将a.out改成什么名字,都可以正常执行;

但并不是所有的文件都可以像这样无视后缀的,就比如使用zip打包解压和使用unzip解包,他们只能识别后缀为zip的文件;其他后缀的文件是无法识别的;总之,具体情况具体分析即可;

文件权限值的表示方法

1.字符表示法

2.八进制表示法

因为一位角色的权限占3位,每位有和没有,可以使用0和1表示;所以最大的权限也就是111=7;因此我们可以将其转换为八进制数来表示权限;

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


 

 具体使用哪种方法,看使用者的习惯和喜好;

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

1.chmod
功能: 设置文件的访问权限
格式: chmod [ 参数 ] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和 root 才可以改变文件的权限,
如果是普通用户,可以通过提权进行修改权限;

用户修改文件权限的格式

① 用户表示符 +/-= 权限字符
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
用户符号:  
u :拥有者
g :拥有者同组用
o :其它用户
a :所有用户
例子:
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt

 ②三位8进制数字

2.chown 

功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名  
直接使用指令chown修改拥有者给别人是不被允许的,必要时得使用sudo强制提权转移拥有者身份,转移身份之后我们就不在是拥有者了(通常会变成是所属组),也就无法在使用chown了;

 3.chgrp

功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组;

文件掩码

umask
功能
查看或修改文件掩码(umask是查看掩码,umask + 掩码是设置新的掩码);
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。
假设默认权限是
mask ,则实际创建的出来的文件权限是 : mask & (~umask)
格式 umask 权限值
说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。
超级用户默认掩码值为0022,普通用户默认为0002。
为什么我们普通用户的目录是775,普通文件是664?
对于目录:(777)111 111 111 &( 111 111 101)=111 111 101=775;
对于普通文件:(666) 110 110 110 & (111 111 101 )=110 110 100=664;

目录权限

r(可读):是否可以看到目录下的所有文件(也就是是否可以使用指令ls);
w(可写):是否可以对当前目录进行新建(mkdir,touch)/修改(mv,mano...)/删除(rm)等操作;
x(可执行):这个权限很重要,如果没有这个权限那么我们甚至都进不去目录中,更不用说看见目录下的文件了;

 如果我们拥有一个目录的写权限,那么我们是可以对目录下的文件进行删除的;那么问题来了;
其他人有写的权限不也是可以把我们新建的文件删除吗;那这不就乱套了吗?

验证:

[root@localhost ~]# chmod 0777 /home/
[root@localhost ~]# ls /home/ -ld 
drwxrwxrwx. 3 root root 4096 9月 19 15:58 /home/
[root@localhost ~]# touch /home/root.c
[root@localhost ~]# ls -l /home/
总用量 4
-rw-r--r--. 1 root root 0 9月 19 15:58 abc.c
drwxr-xr-x. 27 litao litao 4096 9月 19 15:53 litao
-rw-r--r--. 1 root root 0 9月 19 15:59 root.c
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/root.c #litao可以删除root创建的文件
rm:是否删除有写保护的普通空文件 "/home/root.c"?y
[litao@localhost ~]$ exit 
logout

为了解决这个问题Linux下引入了粘滞位,

粘滞位

1.我们在自己家的目录下创建的新文件一般权限都是700(drwx------),别人是看不到的,所以如果我们想要创建一个共享文件那就需要在根目录下创建;
2.在根目录下创建的共享文件肯定对其他人要将权限放开的,但是这时候如果有人恶意删除共享文件,就会造成很大的损失,所以粘滞位的作用就是防止用户删除文件;只有目录的拥有者和超级用户才可以删除该文件;
3.一个文件是否可以被删除关键不在文件本身,关键在于文件的目录,也就是他的上司;如果目录对用户有写权限,那么就可以删除该目录下的文件;
4.在根目录下就有一个共享文件tmp;我们可以在这里里面进行文件的增删改查,但是不可以删除这个目录;

功能:防止其他用户删除文件,确保只有文件拥有者和超级用户才有删除的权利;
命令:chmod +t 文件 ;
t是一种特殊的x权限,一般用于共享文件,

目录权限总结

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

 关于权限的总结

目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目 , 即使目录仍然有 -r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以 cd 进入目录。但由于没有目录的读权限;所以ls命令也就无效了;
注意,每次只能确定一个身份,如果我已经是拥有者了,即便所属组也是我,仍然无法使用所属组的权限;

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

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

相关文章

如何配置flutter(超详细的哦)

目录 首先先去官网下载zip包 下载下来之后就是解压 配置环境变量 winr查看是否配置成功 解决报错 [!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)X cmdline-tools component is missing Android license status unknown 首先先去官…

C. Cards Partition 【Codeforces Round 975 (Div. 2)】

C. Cards Partition 思路&#xff1a; 可以O(n)直接判断&#xff0c;牌组从大到小依次遍历即可。 不要用二分答案&#xff0c;因为答案不一定是单调的 代码: #include <bits/stdc.h> #define endl \n #define int long long #define pb push_back #define pii pair<…

Java 环境变量的设置及其目的

文章目录 1. **为什么要设置Java环境变量&#xff1f;**2. **设置Java环境变量的步骤&#xff08;Windows举例&#xff09;**3. **设置环境变量的目的**3.1 原理1. **PATH 环境变量的作用**2. **JDK 的 bin 目录**3. **执行流程**4. **示例&#xff08;Linux&#xff09;** 总结…

『网络游戏』GoLand服务器框架【01】

打开GoLand创建项目 编写Go程序&#xff1a;main.go package mainimport ("fmt""newgame/game/gate""os""os/signal""syscall""time" )var (SinChan make(chan os.Signal, 1)closeChan chan struct{} )func ma…

【PyTorch入门】一文解释 PyTorch的求导 (backward、autograd.grad)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;PyTorch入门宝典_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 动…

攻防世界---->happyctf

做题笔记。 下载 查壳。 32ida打开。 先运行一下&#xff1a; C写的。 追踪 good job 具体跟踪分析&#xff1a; 说白了&#xff0c;就是一个用于判断 flag key的。 往上走&#xff1a; 跟进。 打开 od吧。 锁定地址 追踪看看。&#xff08;此题&#xff0c;ida不能动态 od可以…

yolov5源码分析001

文章目录 1.研究背景2.源码位置3.源码 1.研究背景 最近项目需要将前人做的YOLOv5改造项目继续改造,于是研究其代码,一步步剖析,一步步看一个个代码意义,旨在为后期攻克YOLOv10等系列做好准备. 2.源码位置 3.源码 # 下载指定文件,并保存在指定目录文件夹中,最后返回文件完整路…

Win10系统插入带有麦克风的耳机_麦克风不起作用_解决方法_亲测成功---Windows运维工作笔记054

今天我在使用讯飞输入法的时候,想通过讯飞的语音输入法来提高自己的输入效率。 但是这个时候发现一个问题就是我插入我的台式机的是一个带有麦克风的耳机。 但是发现我这个耳机没有办法被电脑识别出麦克风来,所以说就没办法使用讯飞输入法的语音输入功能来直接输入文字了。…

Linux虚拟机安装教程

一、前期准备 1.下载VMware Workstation 官网地址&#xff1a;https://access.broadcom.com 进入后需使用邮箱注册登录&#xff0c;登陆后会进入到控制台&#xff0c;选择My Downloads 下滑找到VMware Workstation Pro 选择免费版 选择需要的版本&#xff0c;我下载的是17.5…

Java实现找色和找图功能

某天&#xff0c;张三接到一个任务需求&#xff0c;将一个Excel表格里面的员工信息&#xff0c;录入到员工系统里面&#xff0c;由于数据量非常大&#xff0c;操作起来巨慢。经过一段时间的操作和观察&#xff0c;他发现这种操作&#xff0c;非常有规律&#xff0c;基本就是一些…

SpringBoot3.X配置OAuth

背景 之前在学习OAuth2时&#xff0c;我就有一个疑惑&#xff0c;OAuth2中有太多的配置、服务类都标注了Deprecated&#xff0c;如下&#xff1a; 显然这些写法已经过时了&#xff0c;那么官方推荐的最新写法是什么样的呢&#xff1f;当时我没有深究这些&#xff0c;我以为我放…

[大语言模型-论文精读] 词性对抗性攻击:文本到图像生成的实证研究

[大语言模型-论文精读] 词性对抗性攻击&#xff1a;文本到图像生成的实证研究 目录 文章目录 [大语言模型-论文精读] 词性对抗性攻击&#xff1a;文本到图像生成的实证研究目录文章研究背景 文章标题摘要1 引言2 相关工作3 数据集创建3.1 数据收集3.2 目标提示生成3.3 数据集注…

从日志到洞察:轻松实现服务器安全管理的神器

在当今复杂多变的网络环境中&#xff0c;服务器安全管理已成为一项不可或缺的任务。然而&#xff0c;面对海量的日志数据&#xff0c;如何快速精准地提取有价值的信息&#xff0c;并及时发现潜在的安全威胁&#xff1f;本文将为您介绍一款强大的服务器日志检索与查杀工具&#…

【AHK】打造炒股利器系列——用数组和循环来简化语音报时器

上一篇文章&#xff0c;【AHK】打造炒股利器系列——语音报时器 作为AHK入门&#xff0c;讲解了 注释、赋值、if语句、逻辑运算符、定时器等基本知识。本篇将引入Array和Loop语句来简化化这个语音报时器&#xff0c;让代码更优雅&#xff0c;代码越简单越不容易出错误&#xff…

07-阿里云镜像仓库

07-阿里云镜像仓库 注册阿里云 先注册一个阿里云账号&#xff1a;https://www.aliyun.com/ 进入容器镜像服务控制台 工作台》容器》容器服务》容器镜像服务 实例列表》个人实例 仓库管理》镜像仓库》命名空间》创建命名空间 仓库管理》镜像仓库》镜像仓库》创建镜像仓库 使…

Spring Boot技术栈:打造高效在线商城

2 相关技术 2.1 Springboot框架介绍 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring…

异步框架 fastapi -- 简单介绍

文章目录 fastapi 介绍restful接口设计简单应用Swagger风格的接口文档 fastapi 介绍 fastapi官方文档 fastapi 是现代化、高性能、基于python标准类型注释的异步web框架&#xff1b;基于python构建web APIs&#xff0c;性能可比go语言&#xff1b;高效编码&#xff0c;更少的…

Word导出样式模板,应用到其他所有word

一&#xff0c;打开自己定义好的模板word文件&#xff0c;要用docx格式 打开自己自定义好各种样式的模板的docx文件。 二&#xff0c; 另存为 -》 选一个位置 三&#xff0c;保存为dotm格式 名字要改为Normal 保存类型要用dotm格式。 四&#xff0c;去找word默认加载的…

OpenAI o1与GPT-4o究竟强在哪里

OpenAI 的 O1 模型与 GPT-4o 相比&#xff0c;具有显著的技术进步和性能提升。以下是两者的主要区别和 O1 的进步之处&#xff1a; 推理能力&#xff1a;O1 模型在处理复杂问题&#xff08;如编程和数学&#xff09;方面表现出更强的推理能力。例如&#xff0c;在国际数学奥林匹…

大模型微调方法(非常详细),收藏这一篇就够了!

引言 众所周知&#xff0c;大语言模型(LLM)正在飞速发展&#xff0c;各行业都有了自己的大模型。其中&#xff0c;大模型微调技术在此过程中起到了非常关键的作用&#xff0c;它提升了模型的生成效率和适应性&#xff0c;使其能够在多样化的应用场景中发挥更大的价值。 那么&…