安装Postgres自定义类型 - 无法访问文件“...”:权限被拒绝

问题描述 投票:1回答:1

使用postgres11,我正在尝试注册源代码发布中的示例Complex类型。

我已经构建了这个类型没有任何问题:

git clone https://github.com/postgres/postgres.git
cd postgres/src/tutorial
make

但是当我尝试安装它时,我遇到了一个权限问题:

~/p/s/tutorial> psql -U postgres -W 
Password: 
psql (11.2 (Debian 11.2-1.pgdg90+1))
Type "help" for help.

postgres=# \c testdata
Password for user postgres: 
You are now connected to database "testdata" as user "postgres".
testdata=# 
testdata=# \i complex.sql
psql:complex.sql:39: NOTICE:  type "complex" is not yet defined
DETAIL:  Creating a shell type definition.
psql:complex.sql:39: ERROR:  could not access file "/home/mnuttall/postgres/src/tutorial/complex": Permission denied
psql:complex.sql:47: ERROR:  type complex does not exist

我不确定权限问题究竟来自哪里,因为我已将src / tutorial目录中的所有内容的权限更改为777。

有人有想法吗?

postgresql unix file-permissions
1个回答
1
投票

看起来系统用户postgres无法访问您的主目录。

您需要确保上述目录的权限允许用户postgres进入目录(r-x)。所以可能的解决方案是运行:

$ chmod o+rx $HOME

如果这无助于确保在路径中的每个其他目录上运行该命令。