【Linux】文件权限

news2024/12/26 23:42:36

本期我们来谈谈Linux上的权限:

一、权限的概念

在生活中我们处处都会遇到权限。权限是什么呢?

下面是对于权限的定义:

📌权限:一件事是否允许被“谁”做

📌简化一下就是:权限=人+事物属性

📋举个栗子:

非爱奇艺vip用户观看不了爱奇艺vip内容(这是用户不具备一定条件,属于“人”)

在爱奇艺app中我们不可以写代码(这是爱奇艺app不具备写代码的功能,属于“事物属 性”)

二、Linux上的用户分类

在Linux上的用户就属于“人”这个属性。

而Linux上的用户分为两大类:

📌root:root用户相当于Linux系统里的超级管理员,几乎可以干任何事情。

📌普通用户:普通用户则有很大的限制,例如不能修改系统关键配置文件,想查看其他用户的文件需要相应的权限,不能安装软件,甚至关机关机指令都需要以root身份执行。

三、Linux上文件的角色划分

Linux 中将文件的身份分为三个类别,分别是文件拥有者(owner)所属组(group)其他人(others),每个文件都可单独地对不同的身份执行不同的权限。

📌拥有者(owner):即文件的拥有者,文件拥有者可以对自己的文件设置权限,允许或者拒绝某些用户的访问。

📌所属组(group):所属组是一个组别,在同一组的用户都可以对在同一个组的文件进行访问,用户组在进行团队协作的时候会非常有用。当执行协作任务的时候,某些文件可能需要让多个用户进行共用,此时需要设置用户组的相应权限,以确保在用户组中的所有用户都有权限去访问对应的文件。

📌其他人(other):其他人就可以根据字面意思来理解。对于一个文件,如果该用户并不是文件的拥有者,又被排除在用户组之外,那么这个用户就被赋予了其他人的身份,因此不会享有用户拥有者和用户组成员的待遇。如果想要访问某个文件,则需要等待该文件针对其他人的权限被设置之后才能够进行访问。

四、普通用户和root(超级用户)之间的切换

我们使用普通用户登录时,有时因为权限原因需要root的身份,我们可以使用su指令来快速进行普通用户和root之间的切换:

4.1 su

在我们输入su指令之后,需要输入root账号的密码(密码不进行屏显),在输入完密码过后我们直接切换成了root的身份,但是可以注意到我们所在的当前路径并没有发生变化

想要回到普通用户直接ctrl+D

4.2 su -

在su指令后加一个-,同样进行普通用户和root之间的切换,但是可以注意到我们所在的当前路径发生了变化(直接切换到家目录,相当于以root身份重新登陆):

想要回到普通用户直接ctrl+D

4.3 su 用户名

在su指令后加上用户名是可以切换普通用户之间的切换(在普通用户身份下需要密码):

但是在root身份下就不需要密码了:

五、Linux的文件属性

在Linux上“事物”相对应的是文件,而“事物属性”在Linux上就是文件的一系列属性。

📌Linux的文件属性可以有:执行

在深入了解文件属性之前,我们需要详细谈谈文件类型和文件限权:

现在我们来查看一下当前路径下的文件:

发现除了文件名还有其他一些奇奇怪怪的东西

那么这些到底代表当前文件什么属性呢?请看下图:

对于开头的十个字符我们拿下来慢慢说:

📌开头十个字符的第一个字符表示的是文件类型在Linux下不用文件后缀来区分文件类型而是用文件属性中第一列的第一个字符来区分文件类型

下面对于开头十个字符的不同的第一个字符进行了介绍:

-

表示普通文件,例如文本文件、可执行文件、归档文件(压缩包)等等

d

表示目录

b(block)

表示块设备,例如磁盘

c

表示字符设备,即键盘或者显示器

p

表示管道文件

s

表示网络socket文件

Linux操作系统既然不以文件后缀来区分文件类型那我们该如何去看待Linux环境下文件名后缀呢?

💡自己想用就用,可以给别人看(有些指令不是以Linux环境来运行的,有时候需要文件名,例如gcc)

💡可以将后缀当做文件名的一部分

剩下的九个字符我们平均分成三组来看:

📌第二个到第四个字符表示的是拥有者的权限

📌第五个到第七个字符表示的是所属组的权限

📌第八个到第十个字符表示的是其他人(other)的权限

每组三个字符对应位置的含义是不变的:第一个字符代表是否可读,第二个字符表示是否可写,第三个字符表示是否可执行。

下面对于每个不同的字符进行了介绍:

r

表示拥有可读权限

x

表示拥有可执行权限

w

表示拥有可写权限

-

表示对应位置上没有权限

六、修改文件权限

如果我是文件拥有者,那要怎么对文件的权限进行修改呢?

可以使用chmod指令来进行操作:

6.1 chmod u

chomd 后面加u表示对文件的拥有者的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

📋将test.c文件的拥有者增加可执行限权:

📋将test.c文件的拥有者减少可读和可写限权:

6.2 chmod g

chomd 后面加g表示对文件的所属组的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

📋将test.c文件的所属组增加可执行限权:

📋将test.c文件的所属组减少可执行限权:

6.3 chmod o

chomd 后面加o表示对文件的其他人的权限进行修改

具体操作为:chmod u+想要添加的权限 要修改文件权限的文件名 或者chmod u-想要减少的权限 要修改文件权限的文件名

来看一下具体实例:

📋将test.c文件的其他人增加可写和可执行限权:

📋将test.c文件的其他人减少可读可写可执行权限:

6.4 chmod u,g,o

我们还可以对文件的拥有者、所属组和其他人的限权一起进行进行操作:

直接上操作:

6.5 chmod a

chomd 后面加a可以对文件的拥有者、所属组和其他人的某权限一起进行修改

具体操作为:chmod a+想要添加的权限 要修改文件权限的文件名 或者chmod a-想要减少的权限 要修改文件权限的文件名

📋将test.c文件的拥有者、所属组和其他人减少可写权限:

6.6 chmod 八进制方案

我们将文件的每一组三个字符是否拥有权限用0(无)和1(有)来表示:

📋例如

该test.c文件的每组的限权可以表示为:101 001 001

将每组的三位数(二进制)转换成八进制可以表示为:511

这样我们就可以使用3个八进制数来表示文件的拥有者、所属组和其他人的权限

具体操作为:chmod 八进制方案 要修改文件权限的文件名

📋例如:


本期博客到这里又要大家说再见了。

在这里给大家拜个晚年,祝各位兔年大吉,一帆风顺,这一年一起努力加油呀!

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

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

相关文章

【ROS-Navigation】—— Astar路径规划算法解析

文章目录前言1. 导航的相关启动和配置文件1.1 demo01_gazebo.launch1.2 nav06_path.launch1.3 nav04_amcl.launch1.4 nav05_path.launch1.5 move_base_params.yaml1.6 global_planner_params.yaml2. Astar路径规划算法解析2.1 astar.h2.2 astar.cpp参考文献前言 最近在学习ROS的…

《职场求生攻略》学习笔记 Day8

系列文章目录 这是本周期内系列打卡文章的所有文章的目录 《Go 并发数据结构和算法实践》学习笔记 Day 1《Go 并发数据结构和算法实践》学习笔记 Day 2《说透芯片》学习笔记 Day 3《深入浅出计算机组成原理》学习笔记 Day 4《编程高手必学的内存知识》学习笔记 Day 5NUMA内存知…

JavaEE-多线程进阶

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录常见的锁策略乐观锁 vs 悲观锁轻量级锁 vs 重量级锁自旋锁 vs 挂起等待锁互斥锁 vs 读写锁公平锁 vs 非公平锁可重入锁 vs 不可…

恶意代码分析实战 8 恶意代码行为

8.1 Lab 11-01 代码分析 首先使用strings进行分析。 Gina是在 msgina.dll中的。 很多有关资源的函数。 关于注册表的函数。 使用ResourceHacker查看。 发现是一个PE文件。 保存为dll文件。 动态分析 启动Promon。 进入注册表查看。 这个恶意代码向磁盘释放了什么&…

分享140个ASP源码,总有一款适合您

ASP源码 分享140个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 140个ASP源码下载链接:https://pan.baidu.com/s/1vxAMMEI7WYS8SAnfbJKdGQ?pwdsas8 提取码&#x…

【ARIXV2209】Multi-Scale Attention Network for Single Image Super-Resolution

【ARIXV2209】Multi-Scale Attention Network for Single Image Super-Resolution 代码:https://github.com/icandle/MAN 这是来自南开大学的工作,将多尺度机制与大核注意机制结合,用于图像超分辨率。 2022年初,大核卷积火了&a…

GBD学习

GBD gbd官网 GDB, the GNU Project debugger 是一个debug工具 支持多种语言: Ada、Assembly、C、C、D、Fortran、Go、 Objective-C、OpenCL、Modula-2、Pascal、Rust 编译文件 首先使用gcc -g .c文件 -o 可执行文件名 进行编译,再使用gdb 可执行文件名…

恶意代码分析实战 10 数据加密

10.1 Lab13-01 比较恶意代码中的字符串(字符串命令的输出)与动态分析提供的有用信息,基于这些比较,哪些元素可能被加密? 使用WireShark进行动态分析。 有一串字符看起来像是加密的。 使用Strings分析一下。 发现疑似…

KUKA机器人初次通电配置

安全配置 机器人KSS系统里,会提示选择机器人信息的对话框,选择“机器人”按钮,如下: 承接上一步骤,通过示教器确认所有消息,单击消息提示区域,此时一定会弹出如图 所标示的报警消息&#xff0…

【唐诗学习】一、古诗概述

一、古诗概述 为什么要学习古诗词? 古诗词可以陶冶情操,传承文化诗词,其实就是古代的流行歌曲,它们记录着一个个时代的变迁,是历史的旋律。还有一点很重要:同样是记录历史,史书是国家视角&…

零基础学JavaWeb开发(二十二)之 springmvc入门到精通(2)

3、SpringMVC PostMan工具使用 PostMan简介 Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页面开发和测试的人员会使用到该工具其主要特点 特点: 创建 测试:创建和发送任何的HTTP请求,使用PostMan发送 Get、Post、…

Java IO流之字符流详解

字符流概述 字符流的底层其实就是字节流 字符流 字节流 字符集 字符流特点 输入流:一次读一个字节,遇到中文时,一次读多个字节输出流:底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中 使用场景 用于…

学习Go的全部网站集合

给Golang 入门新手整理了一份全部所需网站集合,主要分为三类。 社区类:这类网站是问答、文档、搜索、资源类网站汇总 镜像和安装包类:有些安装包可能无法下载,此处列出一些可下载Go包和镜像的网站。 开发工具:目前流…

代码随想录--栈与队列章节总结

代码随想录–栈与队列章节总结 1.LeetCode232 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾i…

2.4.2 浮点型

1.浮点型基本数据类型介绍 浮点类型用于表示有小数部分的数值。在JAVA种有俩种浮点类型,分别是float和double. 类型字节长度位数取值范围float4字节32约 3.40282347E38Fdouble8字节64约 1.79769313486231570E308 double表示这种类型的数值精度是float类型的俩倍&a…

PyCharm中运行LeetCode中代码

Leetcode中题目只需要写函数体里面内容即可。不需要关注输入,输出。 这里拿LeetCode中第一题,两数之和 “给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数…

随机梯度下降算法 入门介绍(最通俗易懂)

文章目录1.什么是梯度2.什么是梯度下降算法3.什么是随机梯度下降算法1.什么是梯度 首先给出高数课程中梯度的定义: 如果对上面的定义没有理解也没有关系,用通俗的语言来说,梯度实际上就是一个向量,向量中的各个元素表示多元函数在…

Java IO流之字节流详解

一、OutputStream输出流 FileOutputStream概述: 操作本地文件的字节输出流,可以把程序中的数据写到本地文件中 书写步骤: ① 创建字节输出流对象 细节1:参数一是字符串表示的路径或者File对象都是可以的 细节2:如果文…

《安富莱嵌入式周报》第300期:几百种炫酷灯阵玩法, USB Web网页固件升级,波士顿动力整活,并联二极管问题,VisualStudio升级,STM32C0

往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 祝大家春节快乐! 视频版: https://www.bilibili.com/video/BV1UY4y1d7C7 《安富莱嵌入式周…

(考研湖科大教书匠计算机网络)第二章物理层-第三、四节:传输方式和编码与调制

文章目录一:传输方式(1)串行传输和并行传输(2)同步传输和异步传输(3)单工、半双工和全双工二:编码与调制(1)通信相关基础知识①:消息、数据、信号…