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



当我使用命令启动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".

当我尝试以postgres用户的身份使用访问psql

$ 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"?

我用..解决了这个问题。。

1) 输入相关目录(使用>定位服务器密钥)

2) 备份旧服务器.key链接。

3) 将ssl-cert-snakoil.key复制到server.key

4-5)更换其所有者&小组推迟

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

现在它开始工作了!感谢您的支持。

不要硬拷贝服务器密钥并将其放在原地。

相反,它更简单:

更改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 *

正如错误消息所说,修复密钥文件server.key的权限。服务器以用户"postgres"的身份运行,该用户应该拥有该文件。尝试

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

这件事发生在我身上,结果是我错误地从"ssl cert"组中删除了postgres用户,并用将其设置回

gpasswd-一个postgres ssl证书

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

注意 :尽管答案很难接受,但它并没有解决我的问题。为了帮助其他人,我想在这里回答。

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

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

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

使用";chmod og rwx server.key";并使用chown命令将user更改为postgres user。

最新更新