致命:无法访问私钥文件“/etc/ssl/private/ssl-cert-snakeoil.key”:权限被拒绝

时间:2015-10-20 06:39:07

标签: postgresql ubuntu ssl

这就是我输入的内容:

user@user-computer:/usr/lib/postgresql/9.4/bin$ ./postgres -D /etc/postgresql/9.4/main/

这就是我得到的:

[4173-1] FATAL:  could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied

任何人都可以帮助我吗?我应该更改ss-cert ...密钥文件的权限吗?

2 个答案:

答案 0 :(得分:3)

错误的发生是因为您尝试将PostgreSQL作为您自己的非特权用户启动,并且它并不意味着像那样运行。

Ubuntu以一种应该使用以下方式启动的方式提供PostgreSQL:

 $ sudo /etc/init.d/postgresql start
 #   or
 $ sudo service postgresql start

或使用pg_ctlcluster进行更细粒度的控制,请参阅 http://manpages.ubuntu.com/manpages/trusty/man8/pg_ctlcluster.8.html

答案 1 :(得分:0)

postgres用户不属于ssl-cert用户组时,可能会发生这种情况 尝试将postgres用户添加到论坛ssl-cert

确保postgres/var/lib/postgresql/version_no/main的所有者 例如:sudo chown postgres -R /var/lib/postgresql/9.6/main/

运行以下代码以修复用户组问题并修复权限

# > It happened to me and it turned out that I removed erroneously the postgres user from "ssl-cert" group, set it back with
sudo gpasswd -a postgres ssl-cert

# Fixed ownership and mode
sudo chown root:ssl-cert  /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key

# now postgresql starts! (and install command doesn't fail anymore)
sudo service postgres restart

#also try running pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start

courtsey加入GabLeRoux