Postgresql:由于权限原因,无法创建表空间

Dar*_*roo 3 postgresql permissions tablespace postgresql-9.6

我知道类似的问题已经有十几次了,但我找不到对我有用的答案。

我有一台 Debian 9 机器,刚刚安装完毕,我在上面安装了 Postgresql 9.6 服务器。我试图创建一个新的表空间,但失败了。命令 :

CREATE TABLESPACE newTableSPace LOCATION '/DATA/PostgreSQL/';
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

ERROR: could not set permissions on directory "/DATA/PostgreSQL": Permission denied
SQL state: 42501
Run Code Online (Sandbox Code Playgroud)

因此,经过一些基础搜索后,我已经检查了以下几点:

  • 目录 /DATA/PostgreSQL 存在
  • 它的所有者/组是 postgres:postgres
  • 该目录的权限为770
  • SELinux 显然没有安装(在 Synaptic 中,安装了 libselinux1,但是我尝试过的所有 selinux 命令都返回“命令未找到”。示例:selinuxenabledsetenforce 0)。

我已经没有主意了。

有人有建议吗?

Dar*_*roo 5

我刚刚找到了解决方案!

问题是用户 postgres 的权限不是在目录 /DATA/PostgreSQL/ 上,而是在目录 /DATA 上,它根本没有权限(它属于权限为 770 的当前用户)。

我已将此文件夹的权限更改为 775。我想另一种方法是让用户 postgres 属于拥有 DATA 文件夹的组。