Estou tentando criar um link simbólico em /var/lib/pgsql/data/pg_hba.conf
(caminho padrão no Fedora) apontando para o arquivo real localizado em outro lugar, por exemplo /var/lib/pgsql/data/pg_hba.conf -> /home/pg_hba.conf
(comando para este exemplo: sudo ln -sf /home/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf
).
Configurei /home/pg_hba.conf
as permissões ( -rw-------
), proprietário ( postgres
) e grupo ( postgres
) para serem exatamente como o /var/lib/pgsql/data/pg_hba.conf
arquivo original, até tentei chmod 777
. Quando eu mudo para o usuário postgres
e eu cat /var/lib/pgsql/data/pg_hba.conf
(que agora é um link simbólico), ele imprime com sucesso o conteúdo do /home/pg_hba.conf
arquivo.
No entanto, quando tento aplicar as alterações, sudo systemctl restart postgresql
recebo o seguinte erro
A tarefa para postgresql.service falhou porque o processo de controle foi encerrado com código de erro.
Consulte "systemctl status postgresql.service" e "journalctl -xeu postgresql.service" para obter detalhes.
Eu verifiquei os logs, mas não há nenhuma outra informação útil.
Só está funcionando quando aponto meu link simbólico para um arquivo no mesmo diretório ( /var/lib/pgsql/data/
) que é totalmente inútil (ex: /var/lib/pgsql/data/pg_hba.conf -> /var/lib/pgsql/data/pg_hba.conf.bak
)
Se eu apontar para qualquer outro lugar, não funcionará, mesmo que /var/lib/pgsql
seja o diretório inicial do postgres
usuário!
Eu sou novo no Linux, então tentei criar um link simbólico com meu ~/.bashrc
arquivo apenas para tentar (ex:) ~./bashrc -> /home/.bashrc
Eu escrevi um echo "TEST!"
dentro deste arquivo e apliquei a nova configuração com . ~/.bashrc
e funciona muito bem, meu TEST!
foi impresso com sucesso .
Então, qual é o problema com o PostgreSQL? Como posso corrigir esse erro e manter um link simbólico no pg_hba.conf
arquivo?
Obrigado por suas respostas
Bem, depois de mais pesquisas sobre esse problema, descobriu-se que a causa raiz vem do SELinux .
Consegui fazê-lo funcionar desativando completamente o SELinux (obviamente não recomendado)
Eu também tentei com
chcon
esemanage
( documentação ), mas sem sucessoSe alguém souber como fazer isso sem desabilitar completamente o SELinux, eu estaria realmente interessado em saber.
Obviamente, lutar contra o SELinux não é o caminho a seguir, então estou desistindo do que estava tentando alcançar, mas foi muito interessante aprender (nunca ouvi falar do SELinux antes). Mesmo que minha resposta seja apenas explicar a causa raiz sem dar a correção, acho isso muito mais construtivo do que um "confia em mim mano, não faça isso" ...