如何理解文件权限rw-r-r-1?

权限基础概念

Linux为每个文件/目录定义三类用户:

  1. 所有者(Owner):文件创建者或指定用户
  2. 所属组(Group):共享权限的用户组
  3. 其他用户(Others):系统所有其他账户

权限类型分为三种:

  • 读(r):查看文件内容/目录列表
  • 写(w):修改文件/在目录增删文件
  • 执行(x):运行程序/进入目录

查看当前权限

使用 ls -l 命令查看:

ls -l file.txt```
- **首段符号解析**:  
  `-rw-r--r--` →  
  `-`(文件类型)`rw-`(所有者权限)`r--`(组权限)`r--`(其他用户权限)
---
### **三、修改权限(chmod命令)**
#### **1. 数字模式(推荐)**
权限用数字表示:`r=4`, `w=2`, `x=1`,组合相加:  
```bash
chmod 755 file.txt  # 所有者:rwx(7),组:r-x(5),其他:r-x(5)
chmod 644 dir/      # 所有者:rw(6),组:r(4),其他:r(4)
  • 常用场景
    • 755:可执行程序/目录
    • 644:普通文件(禁止其他用户修改)

符号模式

通过 u/g/o/a(用户/组/其他/所有)和 操作:

chmod u+x script.sh    # 给所有者添加执行权限  
chmod g-w file.txt     # 移除组的写入权限  
chmod o=r-- dir/       # 设置其他用户为只读  

修改所有者与组

  • 更改所有者(需sudo):
    sudo chown user1 file.txt  # 设置所有者
    sudo chown user1:group1 dir/  # 同时设置所有者和组
  • 更改所属组
    sudo chgrp developers project/  # 将目录所属组设为developers

设置默认权限(umask)

umask 决定新建文件/目录的初始权限:

umask 022    # 默认值:文件权限=644,目录权限=755
umask 007    # 组和其他用户无权限(文件=660,目录=770)
  • 计算规则:目录权限 = 777 - umask文件权限 = 666 - umask

特殊权限

  1. SUID4xxx):用户以所有者身份运行程序
    chmod 4755 /usr/bin/program  # 设置SUID
  2. SGID2xxx):目录中新文件继承组权限
    chmod 2775 shared_dir/  # 设置SGID
  3. 粘滞位1xxx):仅所有者可删除目录内文件(如/tmp
    chmod 1777 public_upload/

安全实践与注意事项

  1. 避免过度授权
    • 禁止随意使用 chmod 777,否则所有用户可任意修改文件。
    • 目录需+x权限才能访问内部文件。
  2. 最小权限原则
    • 普通用户文件建议设为 644,敏感数据用 600
  3. 特殊权限风险

    SUID/SGID程序需审计,避免提权漏洞。

  4. 递归修改
    • 批量修改目录权限时用 -R 参数:
      chmod -R 750 /data/  # 递归设置/data下所有内容

引用说明: 基于Linux核心工具集(GNU coreutils)官方文档及Linux man手册(man chmod, man chown, man umask),权限设计遵循POSIX标准,适用于所有主流Linux发行版(Ubuntu/CentOS等)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7032.html

(0)
酷番叔酷番叔
上一篇 2025年7月12日 06:16
下一篇 2025年7月12日 06:32

相关推荐

  • Linux启动参数如何掌握?

    Linux启动选项是内核参数,用于控制系统初始化行为,如调整硬件检测、选择运行模式或进入救援状态等。

    2025年7月30日
    11700
  • 更新软件包列表为什么重要?

    在Linux系统中安装GCC(GNU Compiler Collection)是开发C、C++等程序的基础步骤,不同发行版的安装命令略有差异,以下是详细指南:通过包管理器安装(推荐)Ubuntu/Debian 系# 安装GCC(默认安装最新稳定版)sudo apt install gcc# 安装G++(C++编……

    2025年7月24日
    15200
  • pycharm如何连接linux

    PyCharm中,通过“Settings” -˃ “Project: [Your Project]” -˃ “Python Interpreter”,点击齿轮图标,选择“Add”,

    2025年8月15日
    12400
  • 在Linux操作系统中,运行APK安装包的具体方法和详细操作步骤有哪些?

    在Linux系统上运行Android应用的APK文件,是许多用户(尤其是开发者和尝鲜爱好者)的需求,由于Linux与Android基于不同的内核(Linux内核与Android的Linux内核虽有同源,但用户空间和运行机制差异较大),直接运行APK需要借助特定的兼容层或模拟环境,目前主流的实现方式包括Andro……

    2025年8月28日
    12500
  • 如何给Linux系统瘦身才能有效释放磁盘空间并提升整体运行性能?

    Linux系统长期使用后,可能会因软件包残留、日志堆积、缓存冗余等问题占用大量存储空间,尤其对嵌入式设备、老旧硬件或小容量存储(如SD卡、eMMC)“瘦身”能显著提升系统响应速度和可用性,以下是具体的Linux系统瘦身方法,涵盖软件包、日志、缓存、系统组件等多个维度,清理冗余软件包软件包冗余是Linux存储占用……

    2025年9月17日
    13200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信