一文了解 Linux 系统的文件权限管理
文章目录
- 引入
- Linux文件权限模型
- 查看文件权限
- 权限信息解析
- 修改文件权限
- 符号模式
- 八进制数字模式
引入
在Linux操作系统中,我们想查看我们对文件拥有哪些权限时,可以在终端键入ls -l或ll命令,终端会输出当前路径下的文件信息,如文件名称、权限信息、文件所有者和所属组等信息。例如:

图中类似 -rw-r--r-- 的字符串清晰地展示了对应文件的权限信息,包括用户、组和其他用户的读、写和执行权限。因此,理解这些权限的含义以及如何进行管理,我们就可以通过控制文件的访问权限来确保数据的安全性和完整性。
Linux文件权限模型
Linux系统中的文件权限主要分为三种:读取(Read)、写入(Write)、执行(Execute)。每个文件都有一个所有者,称为用户(User),用户对其文件拥有特定的权限,能够决定其他人(Others)可以访问或修改这些文件;用户也可以被组织成组,组内的成员可以共享特定的文件访问权限,每个用户可以属于一个或多个用户组(Group)。
每种类型的用户都有读(r)、写(w)和执行(x)三种文件权限。文件所有者是创建文件或目录的用户,拥有完全的控制权;文件所属组是一组用户的集合,共享相同的权限;其他用户则是系统中除文件所有者和所属组之外的所有用户。
查看文件权限
我们可以使用ls -l或ll命令查看文件和目录的详细信息,包括文件权限:
-
查看指定文件
file.txt的详细信息:ls -l file.txt -
使用
ls -l命令查看当前目录下所有文件的信息:ls -l -
使用
ll命令查看当前目录下所有文件的信息:ll
权限信息解析
Linux系统文件的读取、写入、执行三种权限分别使用r,w,x表示:
| 权限类型 | 符号表示 | 描述 |
|---|---|---|
| 读取 | r | 允许用户查看文件内容或列出目录中的文件 |
| 写入 | w | 允许用户修改文件内容或在目录中添加、删除文件 |
| 执行 | x | 允许用户执行文件(如果是可执行程序)或访问目录 |
Linux 使用10位字符表示文件的权限信息:

第1位用于标识文件类型(如普通文件、目录);后9位表示文件权限,分为三组,每组三个字符,从左到右依次对应所有者、用户组及其他用户对文件所拥有的操作权限。详细解析对应如下表:
| 下标 | 含义 | 值 | 说明 |
|---|---|---|---|
| 1 | 文件类型 | - | d | l | 文件类型(-:普通文件,d:目录,l:符号链接) |
| 2 | 所有者权限 | r | - | r:所有者拥有读取权限;-:所有者无读取权限 |
| 3 | w | - | w:所有者拥有写入权限;-:所有者无写入权限 | |
| 4 | x | - | x:所有者拥有执行权限;-:所有者无执行权限 | |
| 5 | 组用户权限 | r | - | r:组用户拥有读取权限;-:组用户无读取权限 |
| 6 | w | - | w:组用户拥有写入权限;-:组用户无写入权限 | |
| 7 | x | - | x:组用户拥有执行权限;-:组用户无执行权限 | |
| 8 | 其他用户权限 | r | - | r:其他用户拥有读取权限;-:其他用户无读取权限 |
| 9 | w | - | w:其他用户拥有写入权限;-:其他用户无写入权限 | |
| 10 | x | - | x:其他用户拥有执行权限;-:其他用户无执行权限 |
执行 ll 命令后,终端输出结果的格式通常如下:

从左到右,这一行信息可以分解为以下几个部分:
| 属性 | 值 | 说明 |
|---|---|---|
| 文件类型和权限 | -rw-rw-rw- | 表示这是一个普通文件,拥有读、写、执行权限 |
| 硬链接数 | 1 | 表示链接到该文件的硬链接数量为1 |
| 文件所有者 | root | 表示文件的创建者或所有者为 root 用户 |
| 文件所属组 | root | 表示与该文件关联的用户组为 root 组 |
| 文件大小 | 664 | 以字节为单位显示文件的大小 |
| 最后修改时间 | 10月 8 14:06 | 表示文件最后一次修改的日期和时间 |
| 文件名 | compara_card.sh | 表示该文件的名称为compara_card.sh |
上述示例中的 -rw-rw-rw- 的含义如下:
- 第一个字符
-表示这是一个普通文件(如果是d则表示目录)。 - 接下来的三个字符
rw-表示文件所有者的权限:r表示可读,w表示可写,-表示没有执行权限。 - 中间的三个字符
rw-表示同组用户的权限,意义与所有者相同。 - 最后三个字符
rw-表示其他用户的权限,也同样表示可读和可写,但没有执行权限。
即该文件允许所有用户读取和写入,但不允许执行。
修改文件权限
Linux 修改文件和目录的权限需要使用 chmod 命令。而权限的设置有两种方式:符号模式、八进制数字模式。
符号模式
符号模式使用用户类型(u、g、o、a)和权限(r、w、x)来修改文件和目录的权限,格式为:
chmod [ugoa][+-=][rwx] file
-
[ugoa]:用户类别
用户类型 符号表示 说明 所有者 u文件的创建者 用户组 g与文件所有者同组的用户 其他用户 o不属于文件所有者或同组用户的所有其他用户 所有用户 au, g, o 的组合,即系统中的所有用户 -
[±=]:操作符
操作符 描述 +增加权限 -删除权限 =设置权限(仅指定的权限有效) -
[rwx]:权限类型
符号表示 描述 r读取权限 w写入权限 x执行权限
修改用户权限示例如下:
-
给文件所有者增加执行权限:
chmod u+x file -
从同组用户中删除写权限:
chmod g-w file -
将其他用户的权限设置为只读:
chmod o=r file
八进制数字模式

八进制数字模式的权限数值由三位八进制数字组成,每位分别代表不同的用户类别。即:
- 第一位:文件所有者的权限
- 第二位:同组用户的权限
- 第三位:其他用户的权限
每一位八进制数字又拆分为三个二进制数字表示对应的权限(r、w、x),三位二进制数字可以表示不同的权限组合:
| 权限组合 | 二进制 | 八进制 | 权限描述 |
|---|---|---|---|
| 无权限 | 000 | 0 | 不允许任何操作 |
| 只执行(x) | 001 | 1 | 仅允许执行 |
| 只写(w) | 010 | 2 | 仅允许修改 |
| 写+执行(wx) | 011 | 3 | 允许修改和执行 |
| 只读(r) | 100 | 4 | 仅允许读取 |
| 读+执行(rx) | 101 | 5 | 允许读取和执行 |
| 读+写(rw) | 110 | 6 | 允许读取和修改 |
| 读+写+执行(rwx) | 111 | 7 | 允许读取、修改和执行 |
例如,运行以下命令将权限设置为754:
chmod 754 example.txt
- 第一位
7(二进制111):文件所有者具有读、写和执行权限。 - 第二位
5(二进制101):同组用户具有读和执行权限。 - 第三位
4(二进制100):其他用户具有读权限。
相关文章:
一文了解 Linux 系统的文件权限管理
文章目录 引入Linux文件权限模型查看文件权限权限信息解析修改文件权限符号模式八进制数字模式 引入 在Linux操作系统中,我们想查看我们对文件拥有哪些权限时,可以在终端键入ls -l或ll命令,终端会输出当前路径下的文件信息,如文件…...
Spark:DataFrame介绍及使用
1. DataFrame详解 DataFrame是基于RDD进行封装的结构化数据类型,增加了schema元数据,最终DataFrame类型在计算时,还是转为rdd计算。DataFrame的结构化数据有Row(行数据)和schema元数据构成。 Row 类型 表示一行数据 …...
Linux系统:本机(物理主机)访问不了虚拟机中的apache服务问题的解决方案
学习目标: 提示:本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案 Linux系统:Ubuntu 23.04; 文中提到的“本机”:代表,宿主机,物理主机; 首先,…...
望繁信科技成功签约国显科技 流程挖掘助力制造业智造未来
近日,上海望繁信科技有限公司(简称“望繁信科技”)成功与深圳市国显科技有限公司(简称“国显科技”)达成合作。国显科技作为全球领先的TFT-LCD液晶显示及Mini/Micro LED显示产品供应商,致力于为笔记本、手机…...
枚举在Java体系中的作用
1. 枚举 枚举是在JDK1.5以后引入的。主要用途是:将一组常量组织起来,在这之前表示一组常量通常使用定义常量的方式: //用public static final修饰常量 public static final int RED 1; public static final int GREEN 2; public static f…...
『气泡水』Web官网 案例赏析
前言 Schweppes,作为一家享誉全球的气泡水品牌,致力于与年轻消费者建立更紧密的联系,并提升品牌影响力。为此,其打造了一个充满创意和高度互动性的官网,利用前端技术和动画效果,将产品特性与用户浏览体验完…...
【前端】制作一个简单的网页(2)
单标签组成的元素 这类标签不需要内容产生效果,通常表示对网页的某种行为,它们不用标记任何内容,开始即是结束。 比如,<hr>标签的作用是在网页中添加一条分割线,它仅包含开始标签,是一个单标签元素。…...
OpenAI Canvas:提升编程与写作效率的全新工作界面
随着人工智能技术的飞速发展,大语言模型(LLM)不仅限于生成文本,还能逐步扩展至编程、设计等任务的支持。近期,OpenAI 推出了一个名为 Canvas 的全新功能,专门用于协助用户进行编程和写作。这一功能与 Claud…...
将SpringBoot的Maven项目打成jar包和war包
先需要明确的是,该项目打包的形态是可执行的jar包,还是在tomcat下运行的war包。 springboot自带的maven打包 1.创建一个springboot web项目 1.api控制层HelloWorld.java RestController RequestMapping("/hello") public class HelloWorld …...
【Iceberg分析】Spark与Iceberg集成之常用存储过程
文章目录 Spark与Iceberg集成之常用存储过程调用语法调用样例表快照管理快照回滚根据snapshotid进行回滚根据timestamp进行回滚 设置表当前生效的快照 表元数据管理设置快照过期时间清除孤岛文件重写数据文件运用参数示例optionsGeneral OptionsOptions for sort strategyOptio…...
[旧日谈]关于Qt的刷新事件频率,以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。
[旧日谈]关于Qt的刷新事件频率,以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。 最近在开发的时候,发现一个依赖事件来刷新渲染的控件会导致程序很容易异常和崩溃。 当程序在运行的时候,其实软件本身的负载并不高,所以…...
云上考场小程序+ssm论文源码调试讲解
2 关键技术简介 2.1 微信小程序 微信小程序,简称小程序,英文名Mini Program,是一种全新的连接用户与服务的方式,可以快速访问、快速传播,并具有良好的使用体验。 小程序的主要开发语言是JavaScript,它与…...
城域网——IP城域网、城域以太网、光城域网
一、城域网 1、城域网(Metropolitan Area Network,MAN):一个城市范围内所建立的计算机通信网。 2、分布式队列双总线(Distributed Queue Dual Bus,DQDB):即IEEE802.6,由…...
华为Eth-trunk链路聚合加入到E-trunk实现跨设备的链路聚合
一、适用场景(注:e-trunk与eth-trunk是2个不同的概念) 1、企业中有重要的server服务器业务不能中断的情况下,可将上行链路中的汇聚交换机,通过eth-trunk链路聚合技术,实现链路故障后,仍有可用的…...
【网络安全】JSONP劫持原理及攻击实战
未经许可,不得转载。 文章目录 JSONP简介JSONP工作原理JSONP劫持Callback可定义问题JSONP简介 JSONP(JavaScript Object Notation Padding)是一种用于绕过浏览器同源策略限制的技术,使得网页可以从不同域名的服务器请求数据。由于浏览器的同源策略限制,网页通常只能向与其…...
VR全景摄影的拍摄和编辑软件推荐
随着虚拟现实技术的不断进步,VR全景摄影逐渐成为商业、娱乐和教育等多个领域中的重要工具。通过专业的设备与软件,摄影师能够创作出沉浸式的360度全景作品,为观众提供身临其境的视觉体验。在这篇文章中,我们将介绍VR全景摄影的相关…...
linux:使用sar诊断问题
使用sar诊断问题 1. CPU 使用情况2. 内存与交换3. 磁盘 I/O 活动4. 网络 I/O 活动5. 进程与上下文切换6. 系统调用与文件活动7. 电源管理8. 延迟分析9. 系统全局统计10. 查看历史记录11. 特定时间段12. 自动定时采样其他参数:使用实例: sar(S…...
CUDA编程技巧(不断搜集更新)
1 使用位运算替换部分乘法或除法 位移操作主要适用于无符号整数,对于带符号数的位移,特别是负数,可能会导致问题,如果你需要对负数执行除法或者乘法,最好谨慎使用位移运算。 1.1 替换除法 当需要将一个数除以 2、4、…...
云计算(第二阶段):mysql后的shell
第一章:变量 前言 什么是shell Shell 是一种提供用户与操作系统内核交互的工具,它接受用户输入的命令,解释后交给操作系统去执行。它不仅可以作为命令解释器,还可以通过脚本完成一系列自动化任务。 shell的特点 跨平台:…...
Debian12离线部署Mysql全网最详细教程
一、下载安装所需要的库 1、所需要的库 # 所需要的库有 libc6_2.36-9deb12u8_amd64.deb libgcc-s1_12.2.0-14_amd64.deb libstdc6_12.2.0-14_amd64.deb gcc-12-base_12.2.0-14_amd64.deb psmisc_23.6-1_amd64.deb libnuma1_2.0.18-1_amd64.deb libmecab2_0.996-14b14_amd64.d…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
