pg_upgrade oldbindir 检查失败

pg_upgrade oldbindir check fails

我正在尝试将 postgresql 数据库从 9.1 升级到 9.4。我运行9.4版本pg_upgrade如下:

sudo -u postgres pg_upgrade -b <path>/postgres/9.1/bin -B <path>/postgres/9.4/bin -d <path>/9.1DBs/ -D <path>/<empty folder>

我得到:

check failed for: <path>/postgres/9.1/bin Permission denied

文件夹存在,我将权限设置为777,甚至给了postgres用户目录结构的所有权,但我仍然得到同样的错误。

运行 在详细模式下不提供任何额外信息。 包含旧二进制文件的分区安装在 /media/ 下,我有 read/write 访问权限。

知道是什么原因造成的吗?

这个错误

check failed for: /postgres/9.1/bin Permission denied

发生这种情况是因为需要在层次结构中的每个目录中设置目录访问权限(x 位),从根目录到包含这些可执行文件的目录。

这在 Unix.SE 中有详细说明:

Do the parent directory's permissions matter when accessing a subdirectory?