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

2exbekwf  于 2023-10-17  发布在  其他
关注(0)|答案(3)|浏览(235)

这是我输入的:

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

这就是我得到的:

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

有人能帮帮我吗?我应该更改ss-cert. key文件的权限吗?

eufgjt7s

eufgjt7s1#

这个错误的发生是因为你试图以你自己的非特权用户的身份启动PostgreSQL,它不应该这样运行。
Ubuntu提供了PostgreSQL打包,它应该以这样的方式启动:

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

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

7y4bm7vi

7y4bm7vi2#

postgres用户不属于ssl-cert用户组时可能会发生这种情况尝试将postgres用户添加到组ssl-cert
确保postgres/var/lib/postgresql/version_no/main的所有者,例如:sudo chown postgres -R /var/lib/postgresql/9.6/main/
运行下面的代码来修复用户组问题并修复权限

  1. # > It happened to me and it turned out that I removed erroneously the postgres user from "ssl-cert" group, set it back with
  2. sudo gpasswd -a postgres ssl-cert
  3. # Fixed ownership and mode
  4. sudo chown root:ssl-cert /etc/ssl/private/ssl-cert-snakeoil.key
  5. sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key
  6. # now postgresql starts! (and install command doesn't fail anymore)
  7. sudo service postgres restart
  8. #also try running pg_ctlcluster <version> <cluster> <action>
  9. sudo pg_ctlcluster 9.6 main start

courtsey到GabLeRoux

展开查看全部
okxuctiv

okxuctiv3#

  • (除了现有的2个答案)*

也应该为目录 ssl-cert-snakeoil.key文件所在的目录,即/etc/ssl/private)正确设置URL。
注意:父目录中需要execute(x)权限,以遍历指向文件的目录。
这就是我的工作:

  1. chmod 640 /etc/ssl/private/ssl-cert-snakeoil.key
  2. chmod 755 /etc/ssl/private

根据所有者和组,权限可以相应地更新。(请记住,postgres可能不是访问此特定文件夹的唯一应用程序/服务)

  • 如果/etc/ssl/private文件夹属于组ssl-cert和所有者root,则该文件夹的权限可以如下所示:drwx--x---
  • 如果/etc/ssl/private文件夹属于组root和所有者root,则该文件夹的权限可以如下所示:drwxr-xr-x

相关问题