当前位置: 首页 > news >正文

Linux基础之文件权限的八进制表示法

1. Linux 文件权限概述

在 Linux 中,每个文件或目录都有三种基本权限,分别是:

  • 读权限 - r:允许查看文件内容。
  • 写权限 - w:允许修改文件内容。
  • 执行权限 - x:允许执行文件或进入目录。

每个文件或目录的权限会根据三个用户类别来分配:

  • 所有者 (user, u):文件的创建者或指定的所有者(属主)。
  • 同组用户 (group, g):与文件所有者属于同一组的用户(属组)。
  • 其他用户 (others, o):所有不属于文件所有者或同组的其他用户。

Linux 文件权限通过字符形式或者八进制数字来表示。我们将在后文中详细讨论八进制表示法。


2. 权限的表示法

2.1 字符表示法

字符表示法使用 rwx 来表示权限,通过 9 个字符来定义文件的访问控制,分为三个部分,分别表示所有者、同组用户和其他用户的权限。例如:

rwxr-xr--

上面表示:

  • 所有者权限:rwx(读、写、执行)
  • 同组用户权限:r-x(读、执行)
  • 其他用户权限:r--(读)

2.2 八进制表示法

八进制表示法通过数字来简化权限的表示,每个权限位对应一个数字。具体规则如下:

  • 读权限 r = 4
  • 写权限 w = 2
  • 执行权限 x = 1
  • 无权限 - = 0

每个用户类别(所有者、同组用户、其他用户)都有三个权限位,分别表示读、写和执行权限。通过将每个权限位的数字相加,得到一个数字来表示权限。

常见的权限八进制值如下:

八进制值权限表示描述
777rwxrwxrwx所有用户都拥有读、写、执行权限
755rwxr-xr-x所有者具有读、写、执行权限,组和其他用户只有读和执行权限
644rw-r–r–所有者有读和写权限,组和其他用户只有读权限
600rw-------所有者有读和写权限,组和其他用户没有权限
444r–r–r–所有用户只有读权限
1777rwxrwxrwt设置 Sticky Bit,用于共享目录(如 /tmp)

3. 使用八进制设置文件权限

Linux 中的 chmod 命令可以用来设置文件权限。在 chmod 命令中,您可以使用八进制数字来指定文件的权限。例如:

chmod 755 myfile.txt

此命令会将 myfile.txt 的权限设置为 rwxr-xr-x,即:

  • 所有者具有读、写、执行权限(rwx)
  • 同组用户和其他用户只有读和执行权限(r-x)

4. 特殊权限

除了常规的文件权限(读、写、执行),Linux 还支持三种 特殊权限,它们提供了更加灵活的权限控制。特殊权限会通过四位八进制数字来表示。

4.1 Setuid(设置用户标识)

Setuid(Set User ID)是一种特殊权限,它会使得执行某个程序时,程序以文件的所有者身份运行,而不是执行该程序的用户身份。这个权限通常用于需要临时提权的程序。

  • 八进制表示:Setuid 权限用数字 4 表示。
  • 示例chmod 4755 file 表示设置文件 file 的 Setuid 权限。

4.2 Setgid(设置组标识)

Setgid(Set Group ID)是一种特殊权限,它会使得执行某个程序时,程序以文件所属组的身份运行,而不是执行该程序的用户组。如果 Setgid 设置在目录上,新创建的文件将自动继承目录的组,而不是创建者的组。

  • 八进制表示:Setgid 权限用数字 2 表示。
  • 示例chmod 2755 file 表示设置文件 file 的 Setgid 权限。

4.3 Sticky Bit(粘滞位)

Sticky Bit 是一种用于目录的特殊权限,特别是在 /tmp 这类目录中。当目录设置了 Sticky Bit 时,只有文件的所有者才能删除文件,即使其他用户对该目录有写权限。

  • 八进制表示:Sticky Bit 权限用数字 1 表示。
  • 示例chmod 1777 /tmp 表示设置目录 /tmp 的 Sticky Bit 权限。

5. 四位八进制权限表示法

在设置特殊权限时,Linux 使用四位八进制数字来表示权限。四位表示法的结构如下:

  • 第一位:特殊权限(Setuid、Setgid、Sticky Bit)
  • 第二位:所有者权限(rwx)
  • 第三位:组权限(rwx)
  • 第四位:其他用户权限(rwx)

5.1 示例

假设我们需要设置一个文件的权限,并同时启用 Setuid 和 Setgid 权限。我们可以使用以下命令:

chmod 2755 file

这个命令的含义:

  • 2:启用 Setgid 权限
  • 7:所有者权限为 rwx
  • 5:组权限为 r-x
  • 5:其他用户权限为 r-x

相关文章:

Linux基础之文件权限的八进制表示法

1. Linux 文件权限概述 在 Linux 中,每个文件或目录都有三种基本权限,分别是: 读权限 - r:允许查看文件内容。写权限 - w:允许修改文件内容。执行权限 - x:允许执行文件或进入目录。 每个文件或目录的权…...

数据结构与算法面试专题——堆排序

完全二叉树 完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 设计目标:完全二叉树的设计目标是高效地利用存储空间,同时便于进行层次遍历和数组存储。它的结构使得每个节点的子节点都可以通过简…...

《On Java进阶卷》阅读笔记(五)

第7章 IO系统 I/O流: IO有很多不同的来源和去处,如文件、控制台网络连接等,而且还涉及需求以很多种方式,如顺序读取、随机访问、缓冲、字符、按行读取、按字读取等。 Java8的函数式流相关的类和IO流之间并无关联。 IO流隐藏了…...

《代码随想录》刷题笔记——回溯篇【java实现】

文章目录 组合组合总和 III电话号码的字母组合组合总和组合总和II思路代码实现 分割回文串※思路字符串分割回文串判断效率优化※ 复原 IP 地址优化版本 子集子集 II使用usedArr辅助去重不使用usedArr辅助去重 递增子序列※全排列全排列 II重新安排行程题意代码 N 皇后解数独直…...

数值积分:通过复合梯形法计算

在物理学和工程学中,很多问题都可以通过数值积分来求解,特别是当我们无法得到解析解时。数值积分是通过计算积分区间内离散点的函数值来近似积分的结果。在这篇博客中,我将讨论如何使用 复合梯形法 来进行数值积分,并以一个简单的…...

AcWing——3624. 三值字符串

双指针解法 #include<iostream> #include<unordered_map> using namespace std; int main() {int n; cin >> n;while(n--){unordered_map<char, int> tree;string s; cin >> s;int ans 0x7fffffff; for(int i 0, j 0; j < (int)s.size();…...

【JavaEE进阶】验证码案例

目 &#x1f332;实现说明 &#x1f384;Hutool介绍 &#x1f333;准备工作 &#x1f334;约定前后端交互接口 &#x1f6a9;接口定义 &#x1f6a9;实现服务器后端代码 &#x1f6a9;前端代码 &#x1f6a9;整体测试 &#x1f332;实现说明 随着安全性的要求越来越⾼…...

Uniapp 短视频去水印解析工具开发实现

最近搞了一个有意思的小工具——短视频去水印解析器&#xff01;这玩意儿可以把短视频中的水印给抹掉&#xff0c;还能提取视频、封面等资源。整个项目用了 Uniapp 开发&#xff0c;做完后体验了一下&#xff0c;发现还挺顺手。今天就来跟大家聊聊实现思路和代码细节~ 需求分析…...

计算机网络-八股-学习摘要

一&#xff1a;HTTP的基本概念 全称&#xff1a; 超文本传输协议 从三个方面介绍HTTP协议 1&#xff0c;超文本&#xff1a;我们先来理解「文本」&#xff0c;在互联网早期的时候只是简单的字符文字&#xff0c;但现在「文本」的涵义已经可以扩展为图片、视频、压缩包等&am…...

编程速递-庆祝Delphi诞生30周年!

庆祝Delphi 30周年纪念是一个特别的时刻。 回到1995年&#xff0c;也就是30年前&#xff0c;在微软Windows和互联网时代的曙光初现之时&#xff0c;Borland Delphi的创建者们无法想象&#xff0c;当时使用Borland Delphi构建的应用程序至今仍在运行——为全世界数十亿人服务。…...

每天五分钟深度学习框架pytorch:搭建谷歌的Inception网络模块

本文重点 前面我们学习了VGG,从现在开始我们将学习谷歌公司推出的GoogLeNet。当年ImageNet竞赛的第二名是VGG,而第一名就是GoogLeNet,它的模型设计拥有很多的技巧,这个model证明了一件事:用更多的卷积,更深的层次可以得到更好的结构 GoogLeNet的网络结构 如图所示就是Go…...

性能测试流程、主流性能工具

性能测试流程 性能测试流程 测试测试需求分析 性能测试计划和方案 测什么&#xff1a; 测试背景 测试目的 测试范围 谁来测&#xff1a; 进度和分工 交付清单 怎么测&#xff1a; 测试策略 性能测试用例设计 性能测试测试执行 性能分析和调优 性能测试报告 测试报告是…...

DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏

DeepSeek4j Spring Boot Starter 快速入门 简介 DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器&#xff0c;可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API&#xff0c;开发者可轻松实现对话交互功能。 环境要求 JDK 8Spring Boot 2.7Maven/Gr…...

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架

Solon 框架&#xff01; Solon 是新一代&#xff0c;Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目&#xff08;最近“杭州六小龙”很火啊&#xff0c;我们也是杭州的哦&#xff09;。从零开始构建&#xff08;No Spring、No Java-EE、No Servlet&#…...

【吾爱出品】针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版

针对红警之类老游戏适用WIN10和11的补丁cnc-ddraw7.1汉化版 链接&#xff1a;https://pan.xunlei.com/s/VOJ8PZd4avMubnDzHQAeZDxWA1?pwdnjwm# 直接复制到游戏安装目录&#xff0c;保持与游戏主程序同目录下。...

使用 playwright 自定义 js 下载的路径和文件名

遇到一个问题&#xff0c;点击按钮自动下载文件&#xff0c;路径和文件名都不能自定义&#xff0c;可以用 playwright 来解决这个问题 from playwright.sync_api import sync_playwright import os import time class ExcelDownloader: def __init__(self, download_pat…...

Kafka分区管理大师指南:扩容、均衡、迁移与限流全解析

#作者&#xff1a;孙德新 文章目录 分区分配操作(kafka-reassign-partitions.sh)1.1 分区扩容、数据均衡、迁移(kafka-reassign-partitions.sh)1.2、修改topic分区partition的副本数&#xff08;扩缩容副本&#xff09;1.3、Partition Reassign场景限流1.4、节点内副本移动到不…...

3.从零开始学会Vue--{{生命周期,工程化,组件化}}

1.生命周期钩子 1.是什么 生命周期 概念&#xff1a;就是一个Vue实例从创建 到 销毁 的整个过程 生命周期包括&#xff1a;① 创建 ② 挂载 ③ 更新 ④ 销毁 四个阶段 1.创建阶段&#xff1a;创建响应式数据 2.挂载阶段&#xff1a;渲染模板 3.更新阶段&#xff1a;修改…...

Python--网络编程

3. 网络编程与Socket 3.1 Socket基础 创建Socket import socket# TCP Socket tcp_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# UDP Socket udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)服务器端函数 函数描述​bind((host, port))​绑定…...

【java】方法的基本内存原理(栈和堆)

java内存主要分为栈和堆&#xff0c;方法相关的部分主要在栈内存里&#xff0c;每个方法调用时会在栈里创建一个栈帧&#xff0c;存放局部变量和方法执行的信息。执行完后栈帧被销毁&#xff0c;局部变量消失。而对象实例存在堆里&#xff0c;由垃圾回收器管理。 **Java方法内…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...