Tebakan:Anda menggunakan Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux, atau salah satu distro lain yang mengaktifkan SELinux secara default.
Baik dan pada OS/versi khusus Anda, kebijakan SELinux untuk PostgreSQL tidak mengizinkan server membaca file di luar direktori data PostgreSQL, atau file tersebut dibuat oleh layanan yang dicakup oleh kebijakan yang ditargetkan sehingga memiliki label yang bukan PostgreSQL diizinkan untuk membaca dari.
Anda dapat mengonfirmasi apakah ini masalahnya atau tidak dengan menjalankan, sebagai root:
setenforce 0
kemudian dilakukan pengujian ulang. Jalankan:
setenforce 1
untuk mengaktifkan kembali SELinux setelah pengujian. setenforce
tidak permanen; SELinux akan diaktifkan kembali secara otomatis saat reboot. Menonaktifkan SELinux secara permanen biasanya bukan solusi yang baik untuk masalah seperti ini; jika Anda mengonfirmasi bahwa masalahnya adalah SELinux, itu dapat dieksplorasi lebih lanjut.
Karena Anda belum menentukan OS atau versi yang Anda gunakan, versi PostgreSQL, perintah persis yang Anda jalankan, ls -al
pada file, \d+
di atas meja, dll, sulit untuk memberikan detail lebih lanjut, atau untuk mengetahui apakah ini lebih dari sekadar tebakan. Coba perbarui jawaban Anda untuk memasukkan semua itu dan ls --lcontext
dari file juga.