Una suposición:está utilizando Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux o una de las otras distribuciones que habilitan SELinux de forma predeterminada.
En su sistema operativo/versión en particular, las políticas de SELinux para PostgreSQL no permiten que el servidor lea archivos fuera del directorio de datos de PostgreSQL, o el archivo fue creado por un servicio cubierto por una política específica, por lo que tiene una etiqueta que indica que PostgreSQL no es permitido leer.
Puede confirmar si este es o no el problema ejecutando, como root:
setenforce 0
luego volver a probar. Ejecutar:
setenforce 1
para volver a habilitar SELinux después de la prueba. setenforce
no es permanente; SELinux se volverá a habilitar automáticamente al reiniciar de todos modos. Deshabilitar SELinux permanentemente no suele ser una buena solución para problemas como este; si confirma que el problema es SELinux, se puede explorar más a fondo.
Como no ha especificado el sistema operativo o la versión que está utilizando, la versión de PostgreSQL, el comando exacto que está ejecutando, ls -al
en el archivo, \d+
sobre la mesa, etc., es difícil dar más detalles, o saber si esto es más que una suposición. Intente actualizar su respuesta para incluir todo eso y un ls --lcontext
del archivo también.