이것은 Metasploit 프레임워크에 관한 것입니다.
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이 잘 작동한다는 것입니다. 갑자기 이 문제가 발생한 이유는 무엇입니까?
둘째, 이 문제를 해결하는 방법은 무엇입니까?
답변1
이는 다음의 결과일 가능성이 높습니다.Postgres fsync 권한 오류.
참조된 Wiki 페이지에는 이 문제가 2015-06-04 업데이트에서 수정될 예정이며 다음 사용자에게 영향을 미친다고 명시되어 있습니다.
- 9.4.2, 9.3.7, 9.2.11, 9.1.16 및/또는 9.0.20 PostgreSQL 업데이트 적용
- 데이터 디렉터리( ) 아래에 하나 이상의 파일이나 디렉터리가 있거나 사용자
postgres
(또는 다른 설치 소유자)가 소유하지 않거나 쓸 수 없는 하나 이상의 파일이나 디렉터리에 대한 기호 링크가 있습니다.postgres
PGDATA
조건 2는 SSL이 활성화된 PostgreSQL 9.1, 9.0 및 이전 Debian 및 Ubuntu 설치에 공통적이지만 다른 사용자에게도 영향을 미칠 수 있다고 말합니다. 다른 플랫폼의 모든 파일과 링크는 기본적으로 해당 사용자가 소유하므로 PGDATA
다른 플랫폼의 대부분의 사용자는 영향을 받지 않습니다 .postgres
답변2
인용하신 본문에 그 이유는 다음과 같습니다.
치명적: '/etc/ssl/certs/ssl-cert-snakeoil.pem' 파일을 열 수 없습니다:
권한이 거부되었습니다.
정말로 뱀기름 인증서를 사용하려면 PostgreSQL이 이를 읽을 수 있는지 확인해야 합니다. 하지만 자체 인증서를 생성하여 사용하는 것이 더 좋습니다. (이러한 인증서를뱀기름.)
답변3
해결책은 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을 설정합니다.