Desde que trabajo con Centos que trae activado por defecto selinux siempre que tengo un problema de permisos ya se donde mirar. Selinux es una capa de seguridad por encima de las que ya nos ofrecen los sistemas tipo unix como pueden ser el control de usuarios y permisos. Con selinux podemos hacer cosas como crear contextos y permitir que un servicio sólo tenga acceso a ese contexto, esto nos evita tener que hacer cosas como un chroot para ciertos servicios.
Cuando he tenido que configurar algún servicio, web, samba, etc típicamente me ha dado problemas selinux, lo podemos comprobar desde el archivo de registro /var/log/audit/audit.log. Para solventar los permisos de escritura en un directorio lo que hay que hacer es ver que contexto tiene asociado con ls -Z:
drwxrwxrwx cheli cheli user_u:object_r:samba_var_t directorio
Y si no tiene asociado el contexto adecuado cambiarlo con chcon:
chcon -R -t samba_var_t directorio
En el ejemplo se muestra el caso de samba. Espero que os ahorre tiempo al configurar servicios y no sepais que está pasando después de revisar la configuración un millón de veces.
Cheli