首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 7 pg_ctl:无法访问目录"/var/lib/pgsql/data":权限被拒绝

CentOS 7 pg_ctl:无法访问目录"/var/lib/pgsql/data":权限被拒绝
EN

Stack Overflow用户
提问于 2018-11-15 08:32:00
回答 2查看 5.2K关注 0票数 4

PostgreSQL 10.6和CentOS 7

代码语言:javascript
复制
pg_ctl status
pg_ctl: could not access directory "/var/lib/pgsql/data": Permission denied`

如果pg_ctl拥有所有权postgres:postgres,那么/var/lib/pgsql/data就不能访问它吗?

代码语言:javascript
复制
drwx------   3 postgres postgres   94 Nov 14 06:43 pgsql

如何在不创建漏洞的情况下修复此漏洞?为什么这会导致一个错误?

其他信息(编辑):

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-15 16:31:39

在UNIX中,每个进程都使用启动可执行文件的用户的权限运行,而不是可执行文件的所有者(除非设置了SETUID标志)。

因此,谁拥有pg_ctl并不重要,但在运行它时,您必须是用户postgres

票数 2
EN

Stack Overflow用户

发布于 2018-11-15 13:47:34

这需要很少的故障排除步骤来找出真正的问题。

  1. 查找Linux中该位置的用户/所有者和文件权限:

Ls - al /var/lib/pgsql/data/ ls - al /var/lib/pgsql/

  1. 尝试更改为postgres用户并访问1SU-Postgres中的目录。

下面的链接应该在几个步骤中填空,以检查事物。在#2链接上,您没有移动dir,但是您看到了确保dir就绪/可访问的步骤。

steps

https://www.digitalocean.com/community/tutorials/how-to-move-a-postgresql-data-directory-to-a-new-location-on-ubuntu-16-04

更新

从注释来看,pg ctl看起来是以用户x的身份运行的。并且缺乏足够的权限

在不了解您的环境的情况下,最好让postgres成为运行pg ctl的用户,因为它已经在做一些相关的事情了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53315221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档