EC2实例目录权限异常:ls报错Permission denied及403问题求助
解决EC2实例目录权限导致的ls报错与403 Forbidden问题
没错,你的推测完全正确——这个目录的权限配置就是引发问题的核心原因!
先拆解一下你给出的目录权限 d-wx-wx--x:
- 字母
d表示这是个目录 - 所有者(ubuntu)的权限是
-wx:没有读权限(r),只有写和执行权限 - 所属组(ubuntu)的权限也是
-wx:同样没有读权限 - 其他用户的权限是
--x:只有执行权限,完全没有读权限
而ls命令需要读取目录内的文件列表,没有读权限自然会抛出Permission denied;你的应用运行时需要读取目录里的代码、配置文件或静态资源,缺少读权限也会导致服务器返回403 Forbidden。
修复步骤
给目录添加读权限
目录的执行权限(x)是进入目录的必要条件,我们只需要补充读权限即可:- 如果只需要让所有者和所属组拥有读权限(推荐,符合最小权限原则),执行:
修改后权限会变成chmod u+r,g+r /path/to/application-namedrwxrwx--x,足够满足ls和应用运行的需求。 - 如果你确实需要让其他用户也能读取目录内容(不建议随意开启,存在安全风险),可以执行:
chmod o+r /path/to/application-name
- 如果只需要让所有者和所属组拥有读权限(推荐,符合最小权限原则),执行:
检查目录内文件的权限
有时候目录权限修复后,文件本身的权限可能也不足(比如文件只有写权限),可以给目录下的文件批量添加读权限:chmod u+r,g+r /path/to/application-name/*注意:根据应用的实际需求调整,比如某些敏感配置文件可能只需要所有者可读。
安全提醒
不要图省事直接设置chmod 777,这会给所有用户完全的读写执行权限,存在极大的安全隐患。尽量遵循最小权限原则,只给需要访问该目录的用户/组赋予必要的权限。
内容的提问来源于stack exchange,提问作者anonn023432
相关产品推荐
相关产品推荐

