【问题标题】:CentOS 7 pg_ctl: could not access directory "/var/lib/pgsql/data": Permission deniedCentOS 7 pg_ctl:无法访问目录“/var/lib/pgsql/data”:权限被拒绝
【发布时间】:2018-11-15 08:32:00
【问题描述】:

PostgreSQL 10.6 和 CentOS 7

pg_ctl status
pg_ctl: could not access directory "/var/lib/pgsql/data": Permission denied`

鉴于/var/lib/pgsql/data 拥有postgres:postgres 的所有权,pg_ctl 是否无法访问?

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

【问题讨论】:

  • 我完全被这个弄糊涂了,但我设法启动了 Postgres:sudo -u postgres /usr/lib/postgresql/13/bin/pg_ctl -D /etc/postgresql/13/main start。帮助说,-D, --pgdata=DATADIR location of the database storage area,但是当我实际在那里指定数据目录时,它试图在那里找到 postgresql.conf。所以我把配置目录放在那里,它神奇地工作了。但是仍然存在两个问题:(1)sudo service postgresql start 仍然无法正常工作,(2)这可能不是它应该的工作方式。

标签: postgresql centos7 pg-ctl


【解决方案1】:

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

所以pg_ctl 的所有者是谁并不重要,但运行它时你必须是用户postgres

【讨论】:

  • 我的意思是,我认为pg_ctl 可以将其传递给其他用户,而不必以postgres 用户身份登录以查看数据库的状态服务器。跳过那些箍有点奇怪。啊,但话又说回来,在仅 db 的部署中,我可能就是 postgres。我只是认为他们会允许普通用户使用工具,或者至少su
  • 没有错。第一次见,真的。结果也不同。
  • 您到底需要什么?
  • 刚刚被这个过程绊倒了,以为它会给我很多反馈,包括使用SHOW all;在数据库中显示的变量。
【解决方案2】:

这需要几个故障排除步骤来查明真正的问题。

  1. 找出 Linux 中该位置的用户/所有者和文件权限:
Ls - al /var/lib/pgsql/data/

ls - al /var/lib/pgsql/

  1. 尝试换成postgres用户,访问1中的目录

    # su - postgres

以下链接应填写空白,以便检查内容的几个步骤。在 #2 链接上,您没有移动目录,但您会看到确保目录准备就绪/可访问的步骤

https://wiki.postgresql.org/wiki/First_steps

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

更新

从 cmets 看来,pg ctl 是作为用户 x 运行的...并且缺少足够的权限

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

【讨论】:

  • 对不起,我想你错过了我放的东西。它拥有 postgres:postgres。我在原帖里说过。 pg_ctl 作为 rich 运行,它看不到 /var/lib 内部。数据库工作。由于安装设置本身的权限,我无法使用pg_ctl status。很奇怪。
  • 在原帖中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 2021-01-12
  • 2016-11-17
  • 1970-01-01
相关资源
最近更新 更多