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

Linux 文件权限 (rwx) 详解

1. 权限基础

权限以三种身份区分:

  • 用户 (User):文件所有者
  • 组 (Group):与所有者同属一个组的用户
  • 其他 (Others):除用户和组之外的所有用户

权限表示通常为rwx的形式,每种权限对应一个字符:

  • r (read):读取权限,查看文件内容或列出目录
  • w (write):写入权限,修改文件或在目录中添加/删除文件
  • x (execute):执行权限,运行脚本或进入目录

Red Hat 官方介绍文档:https://www.redhat.com/en/blog/linux-file-permissions-explained


2. 权限表示方法

权限表示可以是符号表示法数字表示法

(1) 符号表示法

例如:rwxr-xr--

  • rwx:用户权限 (读、写、执行)
  • r-x:组权限 (读、执行)
  • r–:其他权限 (读)
(2) 数字表示法

通过三位八进制数字表示:

  • 4:读 ®
  • 2:写 (w)
  • 1:执行 (x)
  • 0:无权限 (-)

组合示例

  • rwx = 4 + 2 + 1 = 7
  • rw- = 4 + 2 + 0 = 6
  • r-- = 4 + 0 + 0 = 4
  • --- = 0 + 0 + 0 = 0

一个完整权限例如:-rwxr-xr-- 等价于 754


3. 修改权限命令
(1) 使用 chmod 命令
  • 符号法

    chmod u+x file.txt   # 给用户增加执行权限  
    chmod g-w file.txt   # 去除组的写权限  
    chmod o=r file.txt   # 设置其他用户只读权限  
    
  • 数字法

    chmod 754 file.txt   # 设置权限为 rwxr-xr--  
    
(2) 修改所有者和组
  • chown:修改文件所有者

    chown user file.txt  
    
  • chgrp:修改文件所属组

    chgrp group file.txt  
    

4. 权限应用场景
  • 网站目录权限

    • 网站根目录:755 (所有者完全权限,其他只读)
    • 配置文件:644 (所有者可读写,其他只读)
  • 脚本文件权限

    • 执行脚本:744 (所有者读写执行,其他只读)

5. 权限陷阱及注意事项
  • 过度权限:设置777可能导致安全隐患,谨慎使用。

  • 权限继承:子目录可能继承父目录权限,使用umask管理默认权限。

  • 特殊权限

    • SUID:设置用户 ID
    • SGID:设置组 ID
    • Sticky Bit:仅拥有者可删除文件

设置示例:

chmod u+s script.sh  # 设置 SUID  
chmod g+s dir/       # 设置 SGID  
chmod +t /tmp        # 设置 Sticky Bit  
http://www.xdnf.cn/news/6846.html

相关文章:

  • PowerBI企业运营分析——RFM模型分析
  • 栈与队列-
  • AI知识梳理——RAG、Agent、ReAct、LangChain、LangGraph、MCP、Function Calling、JSON-RPC
  • 电机试验平台:创新科技推动电动机研究发展
  • 多模态学习(三)—— ROPE位置编码:从理论到实践
  • JavaScript入门【1】概述
  • 进阶-数据结构部分:​​​​​​​2、常用排序算法
  • OpenHarmony平台驱动使用 (二),Camera
  • SQL语句执行问题
  • 【AI算法工程师面试指北】ResNet为什么用avgpool结构?
  • Python 基础之函数命名
  • Redis持久化机制详解:保障数据安全的关键策略
  • MySQL表的约束(上)
  • LeetCode 第 45 题“跳跃游戏 II”
  • Spring之Bean的初始化 Bean的生命周期 全站式解析
  • PyTorch实现CrossEntropyLoss示例
  • AIGC在电商行业的应用:革新零售体验
  • 计算机网络(1)——概述
  • Docker入门指南:镜像、容器与仓库的核心概念解析
  • Redis的Hot Key自动发现与处理方案?Redis大Key(Big Key)的优化策略?Redis内存碎片率高的原因及解决方案?
  • STM32 | FreeRTOS 递归信号量
  • C# 深入理解类(静态函数成员)
  • golang中的反射示例
  • 大模型AI原生应用效果测试与评估视频课来啦
  • Python多进程编程执行任务
  • sudo apt update是什么意思呢?
  • (3)python爬虫--Xpath
  • 2022河南CCPC(前四题)
  • pip升级或者安装报错怎么办?
  • 致敬经典 << KR C >> 之打印输入单词水平直方图和以每行一个单词打印输入 (练习1-12和练习1-13)