如何理解文件权限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

相关推荐

  • 如何为主节点配置浮动IP实现高可用?

    在Linux系统中,浮动IP(Floating IP)是一种关键的高可用性技术,它允许将同一个IP地址动态分配给集群中的不同服务器,当主服务器故障时,浮动IP会自动漂移到备用节点,确保服务不中断,以下是两种主流配置方法的详细步骤:浮动IP的核心原理作用:实现故障转移(如Web服务器、数据库集群),基础要求:至少……

    2025年6月18日
    4500
  • Linux听音频全场景开源方案?

    Linux系统提供多种收听音频方式,包括本地文件、在线流媒体和播客,推荐的开源工具安全易获取,适合从新手到高级用户的不同需求。

    2025年8月8日
    1400
  • 如何安装linuxgrant

    nux中安装grant通常需先确保相关数据库服务运行,通过相应命令或工具赋予用户特定

    2025年8月17日
    1300
  • linux如何运行c语言程序设计

    Linux 中,可通过编写 C 语言代码,用 gcc 编译器编译生成可执行

    2025年8月14日
    1100
  • Linux休眠唤醒失败?解决方法在此

    Linux休眠的两种主要模式挂起到内存(Suspend-to-RAM)状态:系统暂停运行,数据保存在内存,功耗极低,唤醒方式:按电源键、键盘或鼠标(需硬件支持),开合笔记本盖子(默认触发唤醒),网络唤醒(需预先启用Wake-on-LAN),挂起到硬盘(Suspend-to-Disk / Hibernate)状态……

    2025年6月18日
    3100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信