PostgreSQL 无法启动:“server.key”具有组或世界访问权限

问题描述 投票:0回答:8

每当我使用命令启动 PostgreSQL 时:

$ sudo /etc/init.d/postgresql start

Pg 未启动。报错为:

 * Starting PostgreSQL 8.4 database server
 * The PostgreSQL server failed to start. Please check the log output:
2010-01-21 22:10:00 PST FATAL: private key file "server.key" has group or world access
2010-01-21 22:10:00 PST DETAIL: File must be owned by the database user or root, must have no write permission for "group", and must have no permissions for "other".

...当我尝试以

psql
用户身份访问
postgres
时:

$ sudo su postgres
$ psql

它给了我一个错误:

 could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
linux postgresql odoo private-key
8个回答
55
投票

我已经使用..解决了它

1)进入相关目录(使用>定位server.key)

2) 备份旧的server.key链接。

3)复制 ssl-cert-snakeoil.key 到 server.key

4-5) 将其所有者和组更改为 postgres

6) 确保权限为 700 或 740(根据错误消息的要求)

我的 Ubuntu 12.04 和 postgresql-8.3 的食谱:

sudo cd /var/lib/postgresql/8.3/main/
sudo mv server.key server.key-0
sudo cp /etc/ssl/private/ssl-cert-snakeoil.key server.key
sudo chown postgres server.key
sudo chgrp postgres server.key
sudo chmod 740 server.key
sudo /etc/init.d/postgres-8.3 start

现在可以使用了! 感谢支持。


10
投票

不硬复制服务器密钥并将其保留在原处怎么样?

相反,它更简单:

更改 PostgreSQL 数据目录中的“server.key”链接权限(其是指向私有证书.key 文件的链接所在的位置)

# cd /var/lib/postgresql/9.1/main/

# chown -R postgres:postgres server.key`

并确保原始证书在

# /etc/ssl/private/ssl-cert-snakeoil.key

通过设置它们来拥有这些属性

# chmod 640 ssl-cert-snakeoil.key
# chown root:ssl-cert ssl-cert-snakeoil.key

此解决方案已在 Debian 上经过测试。 请记住,CentOS 可以使用具有扩展用户权限管理的 SELinux,可以通过

查看
# ls -laZ *

6
投票

如错误消息所示,修复密钥文件的权限

server.key
。服务器以用户“postgres”运行,该用户应该拥有该文件。尝试一下

#cd <path/to/pgsql/data> 
#chown postgres server.key
#chmod 0640 server.key

3
投票

这发生在我身上,结果发现我错误地从“ssl-cert”组中删除了 postgres 用户,然后将其设置回来

gpasswd -postgres ssl 证书


3
投票

/etc/ssl/private
的权限设置为
root:ssl-cert
。对这个问题的评论让我尝试这个解决方案。

注意:即使答案很难被接受,它也没有解决我的问题。为了帮助别人,我想在这里回答


2
投票
sudo chown postgres /var/lib/postgresql/8.4/main/server.key

sudo chmod 0640 /var/lib/postgresql/8.4/main/server.key

在 postgresql 之后点击选项卡以确认您的版本。


1
投票

按照此操作https://www.postgresql.org/docs/9.6/ssl-tcp.html

使用“chmod og-rwx server.key” 并使用 chown 命令将用户更改为 postgres 用户。


0
投票

对我来说,解决方案很简单:

chmod 0600 client-key.pem

© www.soinside.com 2019 - 2024. All rights reserved.