CentOS 7 pg_ctl: не удалось получить доступ к каталогу "/var/lib/pgsql/data": в доступе отказано
PostgreSQL 10.6 и CentOS 7
pg_ctl status
pg_ctl: could not access directory "/var/lib/pgsql/data": Permission denied`
не было бы pg_ctl
иметь доступ к этому, учитывая /var/lib/pgsql/data
имеет право собственности postgres:postgres
?
drwx------ 3 postgres postgres 94 Nov 14 06:43 pgsql
Как я могу это исправить, не создавая уязвимости? Почему это выдает ошибку?
Дополнительная информация (редактировать):
su - postgres
cd /var/lib
/var/lib/pgsql: drwx------ 3 postgres postgres 94 Nov 14 06:43 pgsql
/var/lib/pgsql/10: drwx------ 4 postgres postgres 33 Nov 14 06:38 10
/var/lib/pgsql/10/data: drwx------ 20 postgres postgres 4096 Nov 15 03:47 data
2 ответа
В UNIX каждый процесс выполняется с разрешениями пользователя, запускающего исполняемый файл, а не владельца исполняемого файла (если не установлен флаг SETUID).
Так что не имеет значения, кому принадлежит pg_ctl
, но вы должны быть пользователем postgres
когда ты запустишь это.
Это требует нескольких шагов по устранению неполадок, чтобы точно определить реальную проблему.
- Узнайте права пользователя / владельца и файлы для этого расположения в Linux:
Ls - al /var/lib/pgsql/data/
ls - al / var / lib / pgsql /
Попробуйте перейти к пользователю postgres и получить доступ к каталогу в 1
# su - postgres
Следующие ссылки должны заполнить пробелы за несколько шагов, чтобы проверить вещи. По ссылке №2 вы не перемещаете каталог, но вы видите шаги, чтобы убедиться, что каталог готов / доступен
https://wiki.postgresql.org/wiki/First_steps
Обновить
Судя по комментариям, pg ctl запускается как пользователь x... и ему не хватает прав
Не зная много о вашей среде, может быть лучше позволить postgres быть тем пользователем, который запускает pg ctl, так как он уже делает вещи, связанные с...