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

Linux下root目录内文件所有者无法访问文件的权限问题咨询

问题解析与解决方案

这是个非常典型的Linux目录权限优先级陷阱,我之前帮同事排查过一模一样的情况,刚开始也纳闷为啥文件所有者连自己的文件都碰不到,核心原因其实不在文件本身,而在它的父目录权限上。

为什么会出现这个问题?

Linux文件系统的访问规则是:要访问一个文件,你必须先拥有其所在父目录的「执行权限(x)」——哪怕你是这个文件的所有者也不例外。因为系统要求你先“进入”这个目录,才能定位到里面的文件。

在你的场景里,./share文件夹是root用户所有,且其他用户无权限(大概率权限是drwx------),这意味着普通用户连cd ./share都做不到,更别说访问里面的文件了——哪怕文件的所有者是他自己。

解决方法

根据你的需求,有两种常见的处理方式:

1. 快速临时解决(适合临时共享)

直接给父目录添加其他用户的执行权限(如果需要让用户看到目录里的文件,再加读权限):

# 仅允许其他用户进入目录并访问内部文件,不能列出目录内容
chmod o+x ./share

# 如果需要用户能看到目录里的文件列表,再加读权限
chmod o+rx ./share

2. 更规范的权限管控(适合长期共享给特定用户)

如果这个文件夹是用来给特定用户共享的,建议用组权限来管理,更安全:

  • 第一步:创建一个专门的共享组
    groupadd share_group
    
  • 第二步:把目标普通用户加入这个组
    usermod -aG share_group username
    
  • 第三步:修改./share的组所有权为这个共享组
    chgrp share_group ./share
    
  • 第四步:给共享组添加读+执行权限
    chmod g+rx ./share
    

这样只有加入share_group的用户才能访问这个目录,避免给所有用户开放权限。

验证方法

切换到目标普通用户,执行以下命令测试:

cd ./share
# 尝试访问你的文件,比如 cat test.txt
cat test.txt

如果能正常执行,说明权限设置生效了。

内容的提问来源于stack exchange,提问作者Mayank Goyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:24:47