当前位置: 首页 > 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
http://www.dtcms.com/a/19077.html

相关文章:

  • 一文说清楚什么是Token以及项目中使用Token延伸的问题
  • 数据开放共享和平台整合优化取得实质性突破的智慧物流开源了
  • 【自学笔记】深度学习基础知识点总览-持续更新
  • UNET改进63:添加DTAB模块|强大的局部拟合和全局视角能力
  • Esxi8.0设置nvidia显卡直通安装最新驱动
  • 六、面向对象编程(2)
  • 多模态基础模型训练笔记-第一篇InternVL-g
  • HTTP 与 HTTPS:协议详解与对比
  • 蓝桥杯 Java B 组之简单动态规划(爬楼梯、斐波那契数列)
  • 本地通过隧道连接服务器的mysql
  • 1-10 github注册仓库
  • MySQL Workbench 8.0不支持非SSL连接
  • 喜报!博睿数据案例获经观传媒“2024年度数字转型创新案例”!
  • 信息量与信息熵
  • 计算机性能与网络体系结构探讨 —— 基于《计算机网络》谢希仁第八版
  • VMware vSphere数据中心虚拟化——搭建vCenter Server7.0数据中心集群
  • 大语言模型推理中的显存优化 有哪些
  • 可编程超表面任意旋转偏振方向并以线性和非线性方式操控相位
  • cpu、gpu查看
  • Ollama 安装命令
  • [C++]多态详解
  • DeepSeek 通过 API 对接第三方客户端 告别“服务器繁忙”
  • C++演示中介模式
  • 【设计模式】03-理解常见设计模式-行为型模式(专栏完结)
  • SpringBoot多数据源实践:基于场景的构建、实现和事务一体化研究
  • 第1825天 | 我的创作纪念日:缘起、成长经历、大方向
  • 使用动态规划解决 0/1 背包问题
  • 【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
  • 前台、后台、守护进程对比,进程组的相关函数
  • 开源ZLMediaKit流媒体服务框架编译使用验证