【Linux】Linux权限(一)文件权限和目录权限

news2024/11/16 5:24:23

Linux权限

  • 1.Linux权限的概念
  • 2.Linux的用户分类
  • 3.Linux的文件类型
    • 3.1如何看待Linux下的文件后缀
  • 4.Linux的文件权限
  • 5.Linux下切换用户指令
  • 6.Linux文件访问者的分类(拥有者、所属组、other)
    • 6.1root 和普通用户 与 拥有者和所属组和其他人的关系
  • 6.2 如何描述一个文件的权限?
  • 7.更改一个文件的权限
  • 8.更改拥有者,所属组
  • 9.文件权限

1.Linux权限的概念

首先在理解Linux的权限之前,我们先来对比一下我们日常生活中的权限。在生活中,权限一般是用来限制人的,你没有权限你就做不了一些事情。
比如在玩游戏时,你没买皮肤,那么你就用不了该皮肤,这也是一种限制人的权限。比如你在看一个看电影的网站上想写代码,这是不可能的,因为它不具备这样的条件。

那么我们可以知道,权限是用来限制人的,访问的对象可能天然就没有这种“属性”。
换句话说,权限就是一件事情是否允许被谁“做”
所以 权限 =+ 事物属性

2.Linux的用户分类

Linux上的用户可以分为 root(超级用户)和 普通用户

两者的区别就是:
root:可以不受任何权限的约束,在linux上可以“无法无天”,所以我们在使用root时,要小心操作,不要做一些危害到操作系统的操作。
普通用户:就相当于我们普通人,在linux上是会受到权限的约束的。比如一个文本文件没有w()权限时,我们不能写入任何东西进这个文本文件。

3.Linux的文件类型

已下图为例,我们知道每一行最后面的是文件名,包含了后缀。
在Windows中,我们是以后缀来区分各种类型的文件的。
而在Linux中,而是用文件属性中第一个字符来区分各种文件。

在这里插入图片描述

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

3.1如何看待Linux下的文件后缀

既然Linux操作系统不以文件后缀来区分文件,那么我们该如何看待文件后缀呢?
1.首先,文件后缀我们想用就用,操作系统不用,但是我们人可以使用。
2.可以将后缀看成文件名的一部分。
3.我们所说的是Linux操作系统不需要后缀区分文件类型,并不代表其他软件不需要后缀,比如gcc这个软件是用来编译C语言代码,那么我们的后缀就得是.c,而不能是.txt

我们来看第三点
比如:
code.c文件内容如下,cat显示文件的内容
因为是.c后缀,所以我们可以编译,这是gcc这个软件需要的。

在这里插入图片描述

但是如果我们把code.c的后缀用mv指令改成.txt再用gcc编译
就会出现第三行的提示,因为gcc软件无法编译.txt后缀的文件

在这里插入图片描述

接下来我们回到第一步,也就是编译成功默认生成a.out这一步,我们运行这个文件是不需要用到gcc这个软件的,这已经是Linux的程序了,那么也就是说,不论我们文件的后缀是什么,我们都能运行。

这是未改之前

在这里插入图片描述

我们把它修改成a.txt,可以看到确实还可以运行
在这里插入图片描述

这再一步证实了,Linux操作系统上的程序与后缀无关。

4.Linux的文件权限

Linux的文件权限可以分为
r()
w(写)
x(执行)

再次看文件属性列表
第一列代表文件类型,那么第一个空格之前九列就是文件的权限
可以看到,有r w x,至于为什么有这么多,我们稍后会解释。
在这里插入图片描述

5.Linux下切换用户指令

前面我们讲过,Linux下有两种用户,一种是root(超级用户),一种是普通用户。
那么我们如何在这两种用户之间进行切换呢?
su指令,可以看一下这篇文章的第37个指令,这里不再赘述

linux基本指令

值得注意的是当我们是root身份切换到普通用户时,是不需要那个普通账户的密码的,可以之间切换。
当我们是普通用户,切换到root或者另一个普通用户时,则需要密码。

6.Linux文件访问者的分类(拥有者、所属组、other)

文件的拥有者:谁创建了这个文件谁就是拥有者。
文件的所属组:所有用户都要隶属于某一个组。
其他人(other):除了拥有者和所属组之外的就属于other

在Linux中,第一个空格之前的除第一列之外的剩下九行就是这三种角色的权限
3个字母为一组,共三组,分别表示拥有者权限,所属组权限,其他人权限
比如第一行rwx是拥有者的权限,表示可读可写可执行
        r-x是所属组权限,表示可读,可执行,-指的是该位置对应的权限表示无,这里是无可写的权限
剩下三个 r-x是其他人的权限,表示可读,可执行

在这里插入图片描述

但是这里我们的是以root身份,所以这些权限对root来说没用,我们切回普通用户。
这里两个名字一个指的是拥有者,一个指的是所属组,我们这里这个文件既是拥有者,也是所属组。
因为other(其他人)可以有很多个,所以这里只列出拥有者和所属组,剩下的就是其他人。
在这里插入图片描述

6.1root 和普通用户 与 拥有者和所属组和其他人的关系

root和普通用户都是具体的人。
而我们拥有者和所属组和其他人则是一种角色。
就像生活中一个人可以扮演多种角色一样,老师,父亲,母亲,儿子,女儿。
root和普通用户都可以扮演成拥有者,所属组,其他人。

6.2 如何描述一个文件的权限?

还得上面说的 权限 =+ 文件属性 吗?
我们以下面这个文件为例描述一个文件的权限。
该文件的拥有者ffg具备可读,可写,可执行的权限,所属组ffg具备可读,可写,可执行的权限,其他人具备可读,可执行的权限。

在这里插入图片描述

7.更改一个文件的权限

需要用到chmod指令
同样在下面这篇文章中第31条指令有讲到,这里不再赘述

Linux基本指令

8.更改拥有者,所属组

需要用到chown和chgrp指令,同样可以看看这篇文章第32条和33条指令

Linux基本指令

9.文件权限

在Linux中有目录权限这个概念,像文件一样,目录也有相应的权限。
比如r,w,x

在普通用户下:
如果我们要进入一个目录,我们需要的权限是:x(可执行权限)
对于目录来讲,如果没有r(可读)权限,我们无法查看当前目录下的文件名+文件属性
如果没用w(可写)权限,我们无法直接在该目录下创建新文件。

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

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

相关文章

matlab中ginput函数的用法

仅用来记录自己学习中不会的函数 ginput函数:来自鼠标或光标的图形输入 一、语法 [x,y] ginput(n) [x,y] ginput [x,y,button] ginput(…) 二、说明 ginput 提高当前坐标区中的交叉线以供您标识图窗中的点,从而使用鼠标定位光标。图窗必须具有焦点…

【Linux】 第八部分 Linux常用基本命令

【Linux】 第八部分 Linux常用基本命令 文章目录【Linux】 第八部分 Linux常用基本命令8. Linux常用基本命令8.1 帮助命令8.2 文件目录类命令pwd 显示当前工作目录的绝对路径cd 切换目录ls 列出目录的内容mkdir 创建目录rmdir 删除目录touch 创建文件cp 复制文件或者目录rm 删除…

网络编程 异步选择模型

目录 1.概念 2.代码样例 1.概念 基本概念,在这一个模型中的代码使用到了vs中窗口应用程序,可以看这一片文章https://blog.csdn.net/weixin_62859191/article/details/128415737?spm1001.2014.3001.5501https://blog.csdn.net/weixin_62859191/article/d…

站在2023起跑线,政企数字化如何深入“核心地带”?

今天,各行各业都积极开展数字化变革,以云为底座开展数字化已成为行业共识。而更进一步观察会发现,大型政企作为数字化转型的先行者和主力军,已经从资源上云、应用上云阶段,率先抵达了数字化深水区,迈入了深…

UDS-Data transmission functional unit

11 数据传输功能单元 11.1 概述 表185指定了数据传输功能单元。 注: ReadDataByIdentifier:客户端通过提供的dataIdentifier去请求读取标识记录的当前值。ReadMemoryByAddress:客户端请求读取所提供的内存范围的当前值。ReadScalingData…

机器学习100天(十九):019 分类模型评价指标-混淆矩阵

机器学习100天,今天讲的是:分类模型评价指标-混淆矩阵。 《机器学习100天》完整目录:目录 一、准确率(Accuracy) 逻辑回归是一个分类模型,那么对于分类模型,如何评估它的优劣呢? 好,我们先来认识一个名词:混淆矩阵(confusion matrix)。混淆矩阵是用来衡量一个分…

C语言预处理器

C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 …

pybind11学习 | 使用CMake构建系统并生成pyd文件

文章目录一 通过Visual Studio生成二 通过CMake生成一 通过Visual Studio生成 在我之前的一篇文章pybind11学习 | VS2022下安装配置中,描述了如何通过配置VS2022实现pybind11项目构建和编译成Python拓展模块。 二 通过CMake生成 项目结构如下: 其中py…

(二十七)Vue组件的样式

文章目录scoped属性实现原理lang属性样式穿透Vue学习目录 上一篇:(二十六)Vue之插件 scoped属性 scoped 属性是 HTML5 中的新属性。如果使用该属性,则样式仅仅应用到 style 元素的父元素及其子元素。即让样式在局部生效&#x…

kafka多线程消费

Kafka consumer 多线程消费 kafka 消费者对象 - KafkaConsumer是非线程安全的。与KafkaProducer不同,KafkaProducer是线程安全的,因为开发者可以在多个线程中放心地使用同一个KafkaProducer实例。 但是对于消费者而言,由于它是非线程安全的…

FreeFileSync 11.29 发布

导读FreeFileSync 是一款开源软件,适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件,它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件,而是确定源文件夹和目标文件夹之间的…

使用 ClusterResourceSet 为 Cluster API 集群自动安装 CNI 插件

1 什么是 Cluster API Cluster API[1] 是一个 Kubernetes 子项目,它将声明式、Kubernetes 风格的 API 引入到集群的创建、配置和管理中。Cluster API 支持在 AWS, Azure, GCP, vSphere, KubeVirt 等多种环境中创建和管理 Kuberenetes 集群,并负责提供部…

单例(Singleton)设计模式

一、单例(Singleton)设计模式说明 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像是经典的棋谱,不同的棋局,我们用不同的棋谱,"套路"所谓类…

WebView以及使用HTTP访问访问网络

文章目录使用网络技术WebView的用法使用HTTP访问网络使用HttpURLConnection使用OkHttp使用网络技术 在Android开发当中,我们应该合理的使用网络编写出更加出色的应用程序,下面学习以下如何在手机端使用HTTP和服务器进行网络交互,并对服务器返回的数据进行解析,这也是在Android…

爽啊,这么多有趣好玩强大的 Python 库

Python语言简洁、易读以及可扩展,在国内外用 Python 做研究的非常多。 Python 语言向来以丰富的第三方库而闻名。这么多有趣好玩且强大,靠一个人去寻找太难了。 最近粉丝群小伙伴们又罗列了一些,分享给大家。喜欢记得点个赞,加入…

OpenHarmony#深入浅出学习eTs#(三)UI布局

本项目Gitee仓地址:深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、ArkUI介绍 框架介绍 方舟开发框架(简称:ArkUI),是一套UI开发框架,提供开发者进行应用UI开发时所必需的能力。 基本概念 组…

力扣sql入门篇(二)

力扣sql入门篇(二) 1 计算特殊奖金 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT employee_id, case when employee_id%21 AND name not like "M%" then salary else 0 end bonus FROM Employees ORDER BY employee_id;1.3 运行…

【软件测试】测试人的一份“漂亮“的年终总结报告......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 不管这一年&#xf…

举一反三-自建zabbix监控mysql

之前写过2篇zabbix监控redis的文章。 本篇针对的是mysql。除了描述如何创建mysql监控的步骤,本篇另一个目的是描述创建任意一个监控对象的基本原理,未来面对其它监控对象时,可以举一反三。 zabbix监控的最基本的部件时zabbix server和zabbix agent. zabbix server负责汇总…

c++primer 第4章 表达式

文章目录第4章 表达式4.1 基础4.1.1 基础概念4.1.2 优先级与结合律4.1.3 求值顺序4.2 算术运算符4.3 逻辑和关系运算符4.4 赋值运算符4.5 递增和递减运算符4.6 成员访问运算符4.7 条件运算符4.8 位运算符4.9 sizeof运算符4.10 逗号运算符4.11 类型转换4.11.1 算术转换4.11.2 其…