linux 文件权限设置详解

ops/2025/1/15 17:17:19/

        在 Linux 中,文件和目录的权限控制非常重要。权限控制决定了用户对文件的操作能力,主要包括对文件的读取、写入和执行权限。Linux 使用 rwx 方式来表示权限,r 代表读取 (Read),w 代表写入 (Write),x 代表执行 (Execute)。

文件权限的基本结构

        在 Linux 中,使用 ls -l 命令可以查看文件的权限,权限信息通常显示在文件的最左侧,结构如下:

-rwxr-xr-x 1 user group 4096 Jan 1 12:34 file.txt 

从上面的例子可以分解出以下内容:

  • -: 表示文件类型,- 表示普通文件,d 表示目录,l 表示符号链接,b 表示块设备文件,c 表示字符设备文件等。

  • rwxr-xr-x: 这是文件的权限,分为三个部分,每部分三个字符,分别表示不同用户类别的权限:

    1. 第1组 (rwx): 文件拥有者的权限
    2. 第2组 (r-x): 与文件拥有者同组的用户的权限
    3. 第3组 (r-x): 其他用户的权限
  • 1: 文件的硬链接数。

  • user: 文件的拥有者。

  • group: 文件的所属用户组。

  • 4096: 文件的大小(单位:字节)。

  • Jan 1 12:34: 文件的最后修改时间。

  • file.txt: 文件名。

文件权限解释

  • r (read): 读取文件内容的权限。
  • w (write): 修改文件内容的权限。
  • x (execute): 执行文件的权限。对于目录,x 权限表示进入该目录的权限(即可以 cd 到该目录)。

例如:

  • rwx: 具有读取、写入和执行的权限。
  • r-x: 具有读取和执行的权限,但没有写入权限。
  • rw-: 具有读取和写入权限,但没有执行权限。

权限的数字表示

在 Linux 中,文件权限可以用三个数字来表示,每个权限用一个数字来表示,具体如下:

  • r = 4 (读取权限)
  • w = 2 (写入权限)
  • x = 1 (执行权限)

数字是相加的,因此每种权限都有对应的数字表示:

  • rwx = 4 + 2 + 1 = 7
  • rw- = 4 + 2 = 6
  • r-- = 4 = 4
  • r-x = 4 + 1 = 5
  • wx- = 2 + 1 = 3
  • --- = 0

因此,文件权限 rwxr-xr-x 的数字表示为 755

  • 文件拥有者(user): rwx → 7
  • 同组用户(group): r-x → 5
  • 其他用户(others): r-x → 5

修改文件权限

使用 chmod 命令可以修改文件或目录的权限,chmod 可以使用符号表示法(如 rwx)或数字表示法(如 755)来设置权限。

使用符号表示法
  • +: 添加权限
  • -: 移除权限
  • =: 设置具体的权限(清除其他权限)

例子:

  • chmod +x file.txt:给 file.txt 文件增加执行权限。
  • chmod -x file.txt:从 file.txt 文件中移除执行权限。
  • chmod u+x file.txt:给文件拥有者增加执行权限(u 代表 user,即文件拥有者)。
  • chmod g-w file.txt:从文件所在组用户中移除写入权限(g 代表 group,即文件所属组)。
  • chmod o+r file.txt:给其他用户添加读取权限(o 代表 others,即其他用户)。
  • chmod u=rwx,g=rx,o=r file.txt:设置文件拥有者为 rwx,组用户为 rx,其他用户为 r
使用数字表示法

数字表示法直接通过三个数字来设置权限:

  • 第一个数字表示文件拥有者的权限。
  • 第二个数字表示与文件拥有者同组的用户的权限。
  • 第三个数字表示其他用户的权限。

例子:

  • chmod 755 file.txt: 设置文件拥有者为 rwx(7),组用户为 r-x(5),其他用户为 r-x(5)。
  • chmod 644 file.txt: 设置文件拥有者为 rw-(6),组用户为 r--(4),其他用户为 r--(4)。
  • chmod 777 file.txt: 设置所有用户(拥有者、组用户、其他用户)都具有 rwx(7)权限。

修改文件所有者和所属组

使用 chown 命令可以修改文件的拥有者和所属用户组。

语法
chown [选项] 用户:组 文件 
  • 用户: 文件的新拥有者。
  • : 文件的新所属组。

例子:

  • chown user1 file.txt: 将文件的拥有者修改为 user1,不改变所属组。
  • chown user1:group1 file.txt: 将文件的拥有者修改为 user1,将所属组修改为 group1
  • chown :group1 file.txt: 将文件的所属组修改为 group1,不改变文件拥有者。

设置特殊权限

除了常规的读、写、执行权限外,Linux 还提供了三种特殊权限:SetuidSetgidSticky Bit

1. Setuid (s)
  • Setuid 权限设置在可执行文件上时,它允许以文件所有者的身份执行该文件,即使执行该文件的用户不是文件的所有者。

  • Setuid 权限通过在执行权限的位置使用小写字母 s 来表示。

    例子:

    chmod u+s file # 给文件设置 setuid 权限 
2. Setgid (s)
  • Setgid 权限可以作用于文件和目录。

    • 对于文件,它使得执行该文件的用户以文件所属组的身份执行文件。
    • 对于目录,它确保新创建的文件和目录继承父目录的组。

    例子:

    chmod g+s directory # 设置目录的 setgid 权限 chmod g+s file # 设置文件的 setgid 权限 
3. Sticky Bit (t)
  • Sticky Bit 权限主要用于目录。当设置 Sticky Bit 权限时,目录中的文件只能由文件的所有者、目录的所有者或 root 用户删除或重命名,其他用户无法删除文件,即使他们有写入权限。

    例子:

    chmod +t directory # 给目录设置 sticky bit 权限 

总结

  • Linux 文件权限通过三个部分(拥有者、所属组、其他用户)来设置。
  • 权限通过 rwx 或数字(如 755)表示。
  • 使用 chmod 修改文件权限,chown 修改文件拥有者和所属组。
  • 还有 Setuid、Setgid 和 Sticky Bit 等特殊权限控制。

http://www.ppmy.cn/ops/150344.html

相关文章

计算机网络 | 什么是公网、私网、NAT?

关注:CodingTechWork 引言 计算机网络是现代信息社会的基石,而网络通信的顺畅性和安全性依赖于有效的IP地址管理和网络转换机制。在网络中,IP地址起到了标识设备和进行数据传输的核心作用。本文将详细讨论公网IP、私网IP以及NAT转换等网络技…

HTML拖拽功能(纯html5+JS实现)

1、HTML拖拽--单元行拖动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><…

《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识

目录 2.1 几何学 向量的内积和外积 旋转矩阵 旋转向量 四元数 李群和李代数 SO(3)上的 BCH 线性近似式 2.2 运动学 李群视角下的运动学 SO(3) t 上的运动学 线速度和加速度 扰动模型和雅可比矩阵 典型算例&#xff1a;对向量进行旋转 典型算例&#xff1a;旋转的复合 2.3 …

Web前端------HTML块级和行内标签之行内标签

一.行内标签介绍 行内标签----span 作用&#xff1a; 1.作为文本字体的容器&#xff0c;用来结合CSS修饰文本样式 2.根据行内标签的特性&#xff08;不换行/部分块级样式不生效eg&#xff1a;宽高等等&#xff09;&#xff0c; 做微小布局 二.代码展示 <!DOCTYPE html>…

Python脚本自动发送电子邮件

要编写一个Python脚本来自动发送电子邮件&#xff0c;你可以使用smtplib库来处理SMTP协议&#xff0c;以及email库来构建邮件内容。 安装必要的库 通常情况下&#xff0c;smtplib和email库是Python标准库的一部分&#xff0c;因此不需要额外安装。如果你使用的是较旧的Python版…

C# 将 List 转换为只读的 List

一、引言 在 C# 编程的广阔世界里&#xff0c;数据的安全性与稳定性始终是我们关注的焦点。当涉及到集合数据的处理时&#xff0c;有时我们会面临这样一个关键需求&#xff1a;将List转换为只读的List。这一操作看似简单&#xff0c;实则蕴含着重大意义。它如同为我们的数据披…

Joplin Server配置端口转发的一个小坑

&#x1f31f; 问题描述 在配置 Joplin Server 时&#xff0c;遇到了一个关于校园网端口转发的有趣问题。具体表现为&#xff1a;从 Windows 客户端连接时出现 “Invalid origin” 错误。 &#x1f50d; 问题分析 测试发现&#xff1a; 内部端口&#xff1a;连接超时外部端…

欧拉路径算法

欧拉图&#xff1a; 对于应该连通图G&#xff0c;有&#xff1a; 1欧拉路径&#xff1a;一条路径&#xff0c;它能够不重复地遍历完所有的边&#xff0c;这个性质很像不重复地一笔画完所有边&#xff0c;所以有些涉及到欧拉路径的问题叫做一笔画问题。 2欧拉回路&#xff1a…