Estoy ejecutando un programa (syslog-ng) que debe leer y escribir varios archivos en una ruta determinada. Falló al inicio, alegando que no puede abrir un archivo en esa ruta.
Por favor, asuma esta estructura de directorios:
/var/platform/program
El platform
directorio tiene el permiso establecido en 0655 (no ejecuta el permiso para el usuario propietario). Si cambio esos permisos a 0755, syslog-ng funciona bien.
Por otro lado, he escrito un pequeño programa en C que intenta abrir y escribir en un archivo en el mismo directorio, y funciona sin problemas cuando se ejecuta como root, pero syslog-ng falla...
¿Cuál puede ser el problema en este caso?
Respuesta1
syslog probablemente quiera ir chdir
al directorio y, por lo tanto, necesita el bit de ejecución establecido en el directorio.
VerBit de ejecución versus lectura. ¿Cómo funcionan los permisos de directorio en Linux?para más información.