对权限的理解和使用
目录
一:用户权限:
★su命令
★sudo命令
二:文件权限
★文件的类型+权限
★文件夹的权限的使用
▲文件夹的可读权限:
▲文件夹的可写权限:
▲文件夹的可执行权限:
★权限的修改操作
▲chmod命令
★对于文件的用户分组的修改
▲chown命令
▲chgrp命令
★权限掩码以及umask指令
★粘滞位的使用场景及使用方法
在Linux当中我们经常会遇到命令执行不允许的情况,通常会产生如下的报错:
我们想要读取一个文件,但是却无法执行。会显示Permission denied。这就是因为权限所造成的影响。权限分为两大类:每个用户所具有的权限,以及事物所具有的权限(多指文件的权限)。只要弄清了这两部分我们以上的现象就会了然于胸。
一:用户权限:
当我们在使用Linux的时候经常会出现一种情况,权限不允许。如下:


无论是上面的无法删除文件还是下面的无法指定一定的操作都是权限不允许造成的。而下面的无法执行相应的操作就是我们用户权限不足造成的。
根据我们的生活经验都可以知道:一个集体要想发扬光大一定要有一个领导者,这个领导者有一定的权力,可以做到有的人无法做到的事情。比如说饭店的厨房里经常会提示非工作人员禁止入内。这就是一种权限的体现。(只有工作人员才允许进入)
而在Linux当中也是这样,为了操作系统以及其他用户的安全,系统会对于用户选择性的否决一些要求。因此就有了权限不允许的情况。
用户的身份可以分为两大类:
1.普通用户
2.超级管理员用户(root)
其中普通用户就是我们使用adduser指定在root用户当中添加的新的用户,而超级管理员用户就是那个权限超级大的领导者。root用户的权限很大,几乎可以做到所有普通用户无法执行的命令。
我们可以通过特定的指令使得这两种用户可以任意切换身份以达到我们想要的效果。
★su命令
因为正常情况下的普通用户权限很低,所以我们想要执行一些命令的时候需要切换到root用户的状态下执行。这个时候就用到了 su 命令。

我们在命令行输入了su命令之后会让我们输入root用户的密码,输入正确之后就成功切换到了我们的root用户了。当我们使用完root用户之后我们可以通过exit指令退出root用户,或者通过ctrl+D快捷键快速退出root用户返回之前的普通用户。

★sudo命令
当然我们还可以给我们的普通用户提升权限,以达到root用户的执行效果,这个时候就需要使用到了sudo命令。但是在执行sudo指令之前需要将用户信息配置进入我们新人的用户文件当中,如果没有配置就会产生我们这张图片的报错。
对于相关文件的配置我们将会在vim章节详细的进行讲解。
二:文件权限
上面我们说到了由于权限不足产生的报错分为两种:
1.用户权限不足无法执行指定命令而产生的报错
2.文件权限不允许无法执行相应的操作而产生的报错
在介绍完用户权限之后我们再来介绍一下由于文件权限。
我们先通过一张图片来大致认识一下文件的相关信息:

通过指令显示文件详细的相关信息的时候我们会发现未知的内容大致分为以上三部分。其中最后一部分容易理解:不就是文件创建的时间吗?那么前面的部分呢?我们一一进行讲解。
★文件的类型+权限

第一部分一共有10个奇奇怪怪的字符。其中第一个字符表示文件的类型。就像是我们之前介绍过的 - 表示的是一个文件,d表示一个文件夹。文件还分为很多种,如:
d:文件夹 -:普通文件 l:软链接(类似Windows的快捷方式) b:块设备文件(例如硬盘、光驱等) p:管道文件 c:字符设备文件(例如屏幕等串口设备) s:套接口文件
我们在本次博客需要详细进行讲解的就是文件夹和文件相关的权限。
知道了第一个字符表示的含义之后我们再来学习后面九个字符所表示的特定的含义。
根据生活尝试我们可以知道一个文件通常具有可读和可写的属性。具有可读属性的文件我们可以读取文件的内容,具有可写属性的文件我们可以向其中写入指定的内容。
我们上面出现的后面的九个字符每三个分为一组,其中的 r 和 w 就表示的是文件是否具备可读和可写的属性。- 表示的是不具备当前属性。
同样是我们之前所提到过的,在Linux当中一切事物皆文件,还记得我们之前使用gcc编写代码的时候系统会自动生成一个可执行程序吗?他其实也是一个文件。当我们的文件具有可执行的属性的时候就会有第三个字符 x 用来表是我们的文件可以作为一个可执行程序进行运行。效果如下:

我们这三种权限就是文件本身所具有的权限。这三个权限可以同时存在。
前面我们说到过后面九个字符需要分为三组,这又是什么原因呢?
其实这样的分组就和我们后面的第二大类相关了。

同样的权限分为的三部分其实是对应后面的用户分类的三部分的。对于一个文件,我们经常会有一些想要保密的东西在里面,这个时候我们可以使用权限分类。第一类表示文件的创建者,一般权限都很高,可以执行对文件的很多操作。第二类表示文件的所属组,通常情况下用于我们想要赋予特殊权限的一类用户。举一个简单的例子:当你工作的时候一定会有小组工作,每一个小组的合作都是可以互相看到的,这样可以帮助我们更好的完成工作。但是我们在工作的时候又会有竞争对手,我们不想让我们的创意被竞争对手抄袭所以就不想让他们看到。因此我们就有了所属组和其他用户。
其中所属组代表的就是可以合作的人员,其他用户代表的就是我们的竞争对手。我们可以通过对这两者可读可写操作权限的修改达到我们想要的目的。
★文件夹的权限的使用
文件夹的权限其实大致是和我们文件的权限是相同的都是分为可读,可写,以及可执行,这三部分。但是又会有人感到很好奇:可读可写容易理解,但是文件夹的可执行是什么东西呢?以及当我们的文件夹不具有可读和可写以及可执行会带来什么效果呢?
▲文件夹的可读权限:
文件夹的可读权限其实很容易理解,我们文件夹当中可以存放各种各样的内容。比如说一个新的文件夹以及文件等等。可读权限就是让我们可以读取这个文件夹当中到底存在哪些内容。如果没有可读权限,那么我们进入一个文件夹就无法使用 ls 命令查看其中的文件有哪些了。效果如下:
如上面的场景所展示的那样:当文件不具备可读权限的时候,我们可以通过cd进入文件夹当中,但是不能在文件夹当中使用 ls 命令查看都有哪些文件。
▲文件夹的可写权限:
顾名思义,当一个文件夹不具备可写权限的时候,我们不可以在其中创建新的文件以及新的文件夹,也不可以在其中删除任意的文件。如下:

在该文件夹当中无论是创建还是删除文件或者文件夹的操作都会被驳回,产生Permission denied的提示。
▲文件夹的可执行权限:
文件夹的可执行权限看似让人很疑惑,但是其实很好理解。对于一个文件夹我们最常使用的一个操作 cd 还没有解释。无论是可读权限还是可写权限都对是否能够进入文件夹没有任何影响。所以我们很容易联想到,我们的 x 可执行权限应该和是否可以正常进入文件夹有关。

通过测试也确实如此。当我们的文件夹不具有可执行权限的时候,我们就无法通过 cd 指令进入该文件夹。但是我们可以尝试是否可以向该文件夹写入一些文件或者读取文件夹当中的文件。

我们会发现,当我们的文件夹不具有可执行权限的时候虽然我们的系统提示我们不能读取文件,但是我们依旧读出了文件夹当中的文件有哪些(test)。但是我们如果想要创建文件在该文件夹当中的时候就必须进入到该文件夹当中,因为不具有可执行权限会被当场驳回。
我们可以通过手动调节权限的设置以达到我们想要的目标效果。
★权限的修改操作
在认识完文件权限的种类以及作用之后,我们再来学习一下怎么修改文件或者文件夹的权限。
▲chmod命令
想要修改一个文件的权限我们可以使用chmod命令执行我们的修改操作。使用方法如下:

我们可以通过加减的操作对权限执行修改。其中u表示user也就是我们文件的所有者拥有的权限,group也就表示我们所属组的权限,o也就是other表示的是其他分组所具有的权限。
上图中我们为user,group,other加上了所有的权限。同样的我们还可以减去指定的权限,让所有用户失去文件的可执行权限:

同样的我们还可以使用比较简单的方式修改权限。因为我们指定权限的位置永远是不变的,第一位永远表示的是可读权限,第二个位置永远表示的是可写权限,第三个位置永远表示的是可执行权限。所以我们就可以使用0或1表示是否具有该权限。可以通过一个十进制数字表示这三个二进制位的情况。例如:

就这样我们可以使用7个数字表示我们所有的权限的状态,所以我们权限的赋值操作也可以写成:

直接使用三个数字表示三组用户的权限信息即可。
★对于文件的用户分组的修改
▲chown命令
在上面我们提到了用户的分组情况,用户的分组一共分为三类,第一类表示的是文件的创建用户,第二类表示的是文件的所属组,第三类表示其他。在查看文件的属性的时候我们也可以观察得到:

但是怎样修改创建用户和所属组呢?
对于创建用户我们可以使用chown命令进行修改,ch代表change。own表示拥有者。但是我们需要注意的是在对文件的用户进行管理的时候我们需要具有一定的权限,否则将无法进行修改。(一般是root用户才可以进行修改,或者配置过后的执行sudo命令的普通用户)

▲chgrp命令
同样的想要修改文件的所属组用户也需要特定的指令,需要使用到chgrp指令进行调节,使用方法和注意事项和chown命令相同。

但是一个一个更改会有点麻烦,所以要想同时修改文件的所属用户和所属组应该怎么办呢?这个时候还是需要使用chown命令,我们只需要使用 :将我们创建用户和所属组的信息分隔开来就好了。

★权限掩码以及umask指令
在我们创建一个文件或者文件夹的时候我们都会发现,文件或者文件夹都会有一个默认的属性。一般文件的默认属性都是666,表示出了不具有可执行属性外具有任何可读或者可写的属性。文件夹的默认属性为777,因为我们通常会在文件夹当中进行一定的读写以及进入等操作。但是经过测试我们会发现,事实上并不是这样的。我们创建一个文件和文件夹的默认属性为:

这又是为什么呢?这是因为我们的系统为了用户的安全会自动设置一个权限掩码,一般的权限掩码都会对其他分组中的用户进行一定程度上的限制,以保证用户信息的安全。我们可以通过umask命令进行观察系统当中的权限掩码:

如上图所示:我们系统当中的权限掩码就为0002,一般的权限掩码都是三位,每一个数字表示的都是一个八进制数字。我们可以将第一个0想象成为八进制数字的前导数。所以实质上我们的权限掩码也可以写成:000 000 010 的形式。我们需要将原本文件的默认属性和我们的权限掩码进行一定的操作才可以得到我们想要的默认的文件的权限。
我们需要先将权限掩码按位取反,之后在和原本的权限进行按位与的操作。执行操作如下:

同理我们可以根据相同的操作得到我们文件夹最终所应具有的权限775。
同样的为了更好的使用权限掩码,我们还可以手动对权限掩码进行修改。我们只需要在umask命令后面加上我们想要修改的权限掩码即可。

虽然我们可以手动修改权限掩码,但是我们最好使用系统中给出的权限掩码,否则会产生很多不必要的麻烦,等到我们需要的时候再对其进行修改即可。
★粘滞位的使用场景及使用方法
当我们在工作的时候肯定会需要很多人都共同进行一个项目的编写,也会需要多人对同一个文件进行读取或者修改的操作。但是服务器上面的每一个用户都是相对独立的,不允许相互访问。
在服务器上的所有的用户,对于其他的用户没有可读可写和可执行的权限,其他用户无法进行访问。因此,我们想要完成合作就需要创建一个用于共享的文件夹,可以在这个文件夹当中写入指定的内容或者修改相关的文件。

但是我们阅读权限会发现,我们这个文件夹对于所属组以及其他用户的权限都不可写,这样怎么才可以实现共享呢?我好不容易有了一个项目的思路,但是却写不尽文件当中!这个时候我们就需要调整权限,将 w 权限放开。

当我们放开文件夹的写权限的时候我们就可以向文件夹当中写入数据了。但是这样真的安全吗?会不会有人恶意删除我们好不容易写好的文件呢?我们可以尝试一下:

我们会发现一个很奇怪的现象:其他用户不需要经过我们的允许就可以任意的删除我们创建的文件,这就带来了很大的安全隐患。但是我们不想让人家删除的话就只能将文件夹的 w 权限删除,一旦删除又没办法进行文件的修改了。所以为了解决这个问题在Linux当中又引入了一个粘滞位的概念。
通常情况下粘滞位是作用于文件夹当中的,我们可以将文件夹的x权限修改成为 t 。当我们文件夹的x权限修改成为 t 之后,在该文件夹当中的文件就只可以被我们文件的所有者删除,其他用户都不可以进行删除,这样就解决了我们上面所出现的问题了。

就像上面图片中所展示的那样,我们将文件夹的权限设置为粘滞位之后重新创建文件,其他用户则无法将我们创建的用户删除。很大程度上保证了我们信息的安全。
此上就是我们权限的所有的内容了,但是需要提一点:所有的权限限制对于root用户都不管用,假如一个用户是root用户就可以无视文件或者系统的其他权限,直接进行任意的修改操作。
相关文章:
对权限的理解和使用
目录 一:用户权限: ★su命令 ★sudo命令 二:文件权限 ★文件的类型权限 ★文件夹的权限的使用 ▲文件夹的可读权限: ▲文件夹的可写权限: ▲文件夹的可执行权限: ★权限的修改操作 ▲chmod命令 ★对于文件的…...
MySQL 5.7 通过数据库idb文件快速导入至另一台数据库
前言 数据库有一张表里有1000万条数据,通过sql导入会非常缓慢,如果数据库版本相同,迁移表可以通过复制表idb文件实现快速迁移。 一、系统环境 原服务器系统:centos7.4 原服务器数据库版本:MySQL5.7.21 新服务器系统…...
第一章 计算机网络基础
目录 1.1 网络体系结构 1.1.1 OSI/RM七层参考模型 1.1.2 OSI/RM和TCP/IP模型的比较 1.1.3 五层协议的体系结构 1.1.4 计算机1向计算机2发送数据过程 1.1.5 TCP/IP体系结构的具体实现 1.2 网络设备概述 1.2.1 互联设备与OSI的对应关系 1.2.2 集线器(HUB) 1.2.3 网桥(B…...
本地电脑搭建SFTP服务器,并实现公网访问
本地电脑搭建SFTP服务器,并实现公网访问 文章目录 本地电脑搭建SFTP服务器,并实现公网访问1. 搭建SFTP服务器1.1 下载 freesshd 服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2. 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内…...
易基因直播预告|细菌微生物基因表达调控表观研究易基因科技
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 DNA甲基化是在半个多世纪前在细菌中发现的。DNA碱基可以作为一个表观遗传调节因子——也就是说,它可以赋予相同的基因序列不同的和可逆的调控状态。在真核生物中,…...
Flask在线部署ChatGLM2大模型
1、 拉取镜像 docker pull swr.cn-central-221.ovaijisuan.com/mindformers/mindformers_dev_mindspore_2_0:mindformers_0.6.0dev_20230616_py39_372、 新建docker.sh -p 8000:8000 是宿主机映射到镜像8000端口 如果添加–ipchost --nethost 会和-p冲突 # --device用于控制…...
浅谈Vue3——父子组件传值
引言 Vue.js是一款流行的JavaScript框架,用于构建用户界面。它提供了一种简洁、灵活的方式来管理和渲染数据。在Vue3中,父子组件之间的数据传递是一个常见的需求。本文将介绍如何在Vue3中传递对象,并且在子组件中访问和修改父组件对象中的属…...
Wolfram语言之父:ChatGPT到底能做什么? | 阿Q送书第六期
文章目录 那么,ChatGPT到底在做什么?它为什么能做到这些?前方的路为ChatGPT赋予“思想”留言提前获赠书 人类语言及其背后的思维模式在结构上比我们想象的更简单、更“符合规律”。 ChatGPT大火,甚至已经开始改变人类的工作和思考…...
antd a-list 添加分页
会分为三部分 template <a-list item-layout"horizontal" :data-source"localData" :pagination"{...paginationProps,current:currentPage}"><a-list-item slot"renderItem" slot-scope"item"><a-list-ite…...
MySQL注入绕安全狗脚本 -- MySQLByPassForSafeDog,以及端口爆破工具 -- PortBrute配置使用
工具介绍 此Tamper仅仅适用于MySQL数据库,在SQLMap使用过程中添加参数–tamperMySQLByPassForSafeDog。 安装与使用 1、安装网站安全狗Apache最新版 2、启用安全狗,不加MySQLByPassForSafeDog绕狗Tamper: python sqlmap.py -u "http://192.168.…...
R语言绘制热图
1、初步绘图 rm(listls())#clear Global Environment setwd(D:/Desktop/0000/code-main/热图)#设置工作路径#加载R包 library (pheatmap) #读取数据 df <- read.table(file"data.txt",sep"\t",row.names 1, headerT,check.namesFALSE) #查看前3行 hea…...
jmeter线程组 bzm - Concurrency Thread Group 阶梯式压测
简介 bzm - Concurrency Thread Group 不是JMeter的官方插件,而是一种由Blazemeter提供的高级线程组插件,它提供了更灵活的并发性能测试设置。它可以在不同的时间内并发执行不同数量的线程,模拟不同的负载场景。 插件下载地址(jme…...
计算即时订单比例-首单使用开窗函数row_number()
1 需求 即时订单和计划订单 订单配送中,如果期望配送日期和下单日期相同,称为即时订单,如果期望配送日期和下单日期不同,称为计划订单。 请从配送信息表(delivery_info)中求出每个用户的首单(用…...
flink集群与资源@k8s源码分析-集群
0 介绍 本文是flink集群与资源@k8s源码分析系列的第二篇-集群 1 场景 下面详细分析各用例 2 启动k8s集群 k8s集群支持session和application模式,job模式将会被废弃,本文分析session模式集群 Configuration作为配置容器,几乎所有的构建需要从配置类获取配置项,这里不显示…...
商城开发:商城系统的哪些功能值得企业去关注?
电子商务行业的快速发展,企业们越来越重视建设自己的在线商城。选择一个功能强大的商城系统对于企业的成功至关重要。那么,有哪些商城系统的功能值得企业去关注呢? 一、用户体验提升 ①. 响应式设计 移动设备的普及,大部分用户通…...
calibre和cpolar搭建一个私有的网络书库
Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说! 文章目录 Kindle中国电子书店停运不要慌,十分钟搭建自己的在线书库随时随地看小说!1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网…...
c++ nlohmann::json 中文支持
c nlohmann::json 是当前排名第一人库,但是在解析中文时会有问题 std::string to_utf8(std::wstring& wide_string) {static std::wstring_convert<std::codecvt_utf8<wchar_t>> utf8_conv;return utf8_conv.to_bytes(wide_string); }void test_nl…...
vue3 | defineExpose的使用
简介 使用<script setup>的组件是默认关闭的————即通过模板引用或者$parent链获取到的组件的公开实例,不会暴露在任何在<script setup>中声明的绑定 换句话说,如果一个子组件使用的是选项式 API 或没有使用 <script setup>&…...
PaddleSeg学习3——使用PP-LiteSeg模型对道路进行分割
使用PP-LiteSeg模型对道路进行分割 1 准备环境2 样本3 准备config文件4 模型训练5 模型预测5.1 python预测5.2 C++预测5.3 预测结果展示1 准备环境 参考上一篇:Windows PaddleSeg c++部署 2 样本 车道线分割实战的智能车数据集 #标签 背景:0, 0.05 单实线-黄...
时序数据库的关键技术点总结
总结时序数据库的关键技术点 内存 SQL解析LSM Tree(WAL)skiplist内存合并,有序落盘LRU 时序文件索引缓存 存储层 时间分区设备分区 索引文件 时间戳范围索引布隆过滤器索引brin 索引btree 索引多层索引 数据文件(tskv…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
