Если вы случайно поменяли права на директорию /etc и её содержимое.
Как я исправил обратно не помню, но помню что гуглил и менял обратно права. Но лучше советовали переустановить систему, если вам это не накладно.
Мне было лень переустанавливать и поэтому погуглив нашел пару инструкций выполнив которые я надеялся что вернул все на свои места.
Но вот вчера обнаружил, что не могу подключиться к PostgreSQL. Параллельно заметил, что у меня есть зависшие Vagrant. Я их не смог выгружить через vagrant destroy. Там было много ошибок и я думал, что это как-то связано. Но потом подумал, что возможно эта проблема никак не относится к Постргесс. Возможно это из-за того, что я установил новый виртуалбокс пока вагрант был запущен и тепер я не могу нормально удалить вагрант.
Есть такая команда
pg_lsclusters
Она показывает рабочие кластеры. Запустил эту команду, а так путь к логу. Открыл лог и вижу такую ошибку:
Fix postgresql error FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Не сразу до меня дошло, что это из-за моей случайной опечатки в прошлом, когда я сменил права на директорию /etc/
Нашел решение тоже в гугле: https://gist.github.com/GabLeRoux/0c60f9be0c28b6b41f64cb55474b0ccb#file-fix-ssl-cert-snakeoil-key-ubuntu-postgresql-sh-L5
# > It happened to me and it turned out that I removed erroneously the postgres user from "ssl-cert" group, set it back with 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 /etc/init.d/postgresql start