Unix访问同主机下其他服务器文件夹出现Permission denied报错
问题排查与解决步骤
- 逐层校验目录权限
Unix系统对目录的访问权限是路径逐层校验的,要进入目标路径需要路径上所有父级目录都对当前用户开放执行权限(x位),仅修改最终目录权限无法解决问题
执行以下命令打印全路径所有层级的权限信息,逐一检查父级目录权限:
如果发现namei -l server2/path2/pathserver2/、server2/path2/任意一级缺少执行权限,执行对应chmod命令补充x位即可。 - 核对路径与挂载配置
- 先确认你在Server2上修改的路径是否和访问路径匹配:你执行的修改命令是
chmod ugo+rwx server/path2/path,访问路径是server2/path2/path,确认是否存在拼写错误(少了2后缀)。 - 如果
server2/是你挂载的Server2目录映射(比如bind挂载、sshfs、NFS挂载),检查挂载参数是否有限制:执行mount | grep server2查看挂载参数,是否有ro(只读)、noexec、权限强制映射类参数限制了访问。
- 先确认你在Server2上修改的路径是否和访问路径匹配:你执行的修改命令是
- 检查额外权限控制机制
- 确认是否配置了POSIX ACL额外权限,执行以下命令查看ACL规则:
getfacl server2/path2/path- 确认是否开启了SELinux、AppArmor等强制访问控制服务,可临时关闭验证:
对于SELinux执行:setenforce 0,测试访问是否恢复,如果恢复则调整对应目录的SELinux上下文即可。
- 校验用户身份映射关系
如果你是通过容器、chroot等方式部署的两台Unix实例,需要确认Server1上执行cd操作的用户uid/gid,和Server2中目录对应的uid/gid是否匹配,避免出现跨实例用户id不对应导致的权限不生效问题。 - 检查软链接指向
执行ls -ld server2/path2/path确认目标路径是否为软链接,如果是软链接,需要额外检查软链接指向的真实路径的权限配置。
内容的提问来源于stack exchange,提问作者melony_r
相关产品推荐
相关产品推荐

