如何理解文件权限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系统中,使用命令rm -r /path/to/backup可删除备份文件,

    2025年8月10日
    9300
  • Linux如何查看内存使用率?常用命令及详细步骤有哪些?

    在Linux系统中,内存管理是系统性能优化的核心环节,准确查看内存使用率是判断系统负载、排查性能问题的关键,本文将详细介绍Linux系统中查看内存使用率的多种方法,包括常用命令、参数解析及适用场景,帮助用户全面掌握内存监控技巧,使用free命令快速查看内存概览free是最基础的内存查看命令,通过读取/proc……

    2025年9月8日
    8700
  • 底层驱动交互核心方法哪三种?

    在Linux系统中,Qt应用程序操作底层驱动函数的核心原理是通过用户空间与内核空间的交互实现的,由于Qt本身是用户空间框架,无法直接访问内核驱动,因此需借助Linux提供的标准化接口,以下是具体实现方法和关键技术:设备文件操作(/dev目录)Linux将硬件设备抽象为文件(如 /dev/ttyS0、/dev/i……

    2025年7月6日
    13300
  • Linux启动命令行有哪些高效方法?

    图形界面下启动命令行(最常用)适用于带桌面环境(如GNOME、KDE)的Linux发行版(Ubuntu、Fedora等),快捷键启动按 Ctrl + Alt + T(多数发行版默认快捷键),立即弹出终端窗口,可直接输入命令,菜单启动点击桌面左上角“活动”(Activities)或“应用程序菜单”,搜索关键词:t……

    2025年6月15日
    14700
  • Linux如何开放UDP端口?

    理解UDP通信原理UDP(User Datagram Protocol)是一种无连接的传输层协议,适用于实时性要求高、允许少量丢包的应用(如DNS查询、VoIP),开启UDP需两步:服务配置:确保应用程序监听UDP端口,防火墙放行:允许外部流量访问该端口,配置服务监听UDP端口以开放UDP端口12345为例(替……

    2025年8月6日
    11000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信