You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Unix系统中已设文件777权限,普通用户仍无法读取该文件?

问题原因解析

核心逻辑:Unix文件系统的目录权限优先级

在Unix类系统中,要访问一个文件,必须先拥有其所在父目录的「可执行权限(x)」——这个权限的作用是允许用户遍历该目录,定位到目标文件。

操作过程的权限矛盾复盘

  1. 初始操作后,test目录被设置为700权限,仅root用户能进入该目录、查看或操作其中文件:
    sudo su
    mkdir test
    touch test/x.txt
    chmod -R 700 test
    exit
    
  2. 后续你仅修改了test/x.txt的权限为777,但**test目录的700权限未做任何变更**:
    sudo su
    chmod 777 test/x.txt
    exit
    
  3. 普通用户执行cat test/x.txt时,系统会先尝试进入test目录定位文件,但由于该目录对普通用户没有可执行权限,直接返回permission denied,根本不会去检查x.txt本身的权限。

验证与解决方法

  • 验证:普通用户尝试进入test目录会直接失败:
    cd test
    # 输出:bash: cd: test: Permission denied
    
  • 解决:如果需要让普通用户访问x.txt,需给test目录添加可执行权限:
    sudo chmod 755 test
    
    此时普通用户即可正常访问test/x.txt。

内容的提问来源于stack exchange,提问作者Tal Rofe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 10:01:18