これはMetasploit Frameworkについてです。
root@kali:~# service postgresql start
[....] Starting PostgreSQL 9.1 database server: main[....] The
PostgreSQL server failed to start. Please check the log output:
2015-05-23 19:07:58 EDT LOG: database system was interrupted;
last known up at 2015-05-23 16:52:00 EDT 2015-05-23 19:07:58
EDT FATAL: could not open file "/etc/ssl/certs/ssl-cert-snakeoil.pem":
Permission denied 2015-05-23 19:07:58 EDT LOG: startup process
(PID 3466) exited with exit code 1 2015-05-23 19:07:58 EDT LOG:
aborting startup due to startup [FAILss failure ... failed! failed!
私の最初の質問は、PostgreSQLは完全に機能していたということです。何がこの問題を突然引き起こしたのですか?
次に、これを修正するにはどうすればよいですか?
Postgres fsyncPermissions Bug の結果である可能性があります。
参照されているWikiページには、この問題は2015-06-04アップデートリリースで修正される予定であり、次のようなユーザーに影響があったことが記載されています。
postgres
ユーザー(または他のインストール所有者)がpostgres
データディレクトリ(PGDATA
)。さらに、条件2は、SSL対応のDebianおよびUbuntuのPostgreSQL 9.1、9.0、およびそれ以前のインストールに共通ですが、他のユーザーにも影響を与える可能性があります。 PGDATA
の下のすべてのファイルとリンクは、デフォルトでpostgres
ユーザーによって所有されているため、他のプラットフォームのほとんどのユーザーは影響を受けません。
あなたが引用したテキストには理由があります:
致命的:ファイル "/etc/ssl/certs/ssl-cert-snakeoil.pem"を開けませんでした:
アクセス拒否
本当にsnakeoil証明書を使用したい場合は、PostgreSQLがそれを確実に読み取れるようにする必要があります。ただし、独自の証明書を生成し、代わりにそれを使用することをお勧めします。 (これらの証明書が snakeoil と呼ばれるのには理由があります。)
解決策はaclを使用し、postgresユーザー(postgresまたはpsqlと呼ばれ、パスワードファイルをチェックする)が
/etc/ssl/certs/ssl-cert-snakeoil.pem
ユーザーがpsqlと呼ばれている場合はこれを行います
setfacl -m u:psql:r-- /etc/ssl/certs/ssl-cert-snakeoil.pem
もちろん、ACLがアクティブかどうかを確認してください
mount |grep -w / |grep acl
fstabを編集しない場合(前にコピーを作成)、デフォルトの後に、aclを配置します
次にmount -o remount /
とsetfaclでactlを設定