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

时间:2012-08-23 08:31:00

标签: linux postgresql openerp odoo private-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".

...当我尝试以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"?

7 个答案:

答案 0 :(得分:49)

我用...解决了它。

1)输入相关目录(使用> locate 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

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

答案 1 :(得分:6)

如错误消息所示,请修复密钥文件server.key的权限。服务器以用户“postgres”运行,该用户应该拥有该文件。试试

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

答案 2 :(得分:5)

如何不硬拷贝服务器密钥并将其保留在适合的位置。

相反,它更简单:

更改&#34; server.key&#34;链接PostgreSQL数据目录中的权限(它是私有certificate.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 *

答案 3 :(得分:3)

它发生在我身上,事实证明我错误地从“ssl-cert”组删除了postgres用户,并将其设置为

  

gpasswd -a postgres ssl-cert

答案 4 :(得分:3)

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

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

答案 5 :(得分:2)

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

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

在postgresql之后点击标签确认你的版本。

答案 6 :(得分:0)

关注这个https://www.postgresql.org/docs/9.6/ssl-tcp.html

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