Установка пользовательского типа Postgres - не удалось получить доступ к файлу "...": разрешение запрещено - PullRequest
1 голос
/ 16 апреля 2019

Используя 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

Iя не уверен, откуда именно возникает проблема с разрешениями, так как я изменил разрешения для всего в каталоге src / tutorial на 777.

У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 16 апреля 2019

Похоже, ваш домашний каталог недоступен для системного пользователя postgres.

Необходимо убедиться, что разрешения указанных выше каталогов позволяют пользователю postgres войти в каталог (r-x).Таким возможным решением было бы выполнить:

$ chmod o+rx $HOME

Если это не поможет, обязательно запустите команду для всех остальных каталогов в пути.

...