Permiso de búsqueda en cada directorio antes de la clave
Una clave puede ser 0600 y aun así negarse a abrirse cuando un directorio superior bloquea el recorrido. Recorra toda la ruta como la cuenta del servicio antes de cambiar cualquier modo.
El modo 0600 y el propietario correcto no garantizan que el servicio pueda abrir una clave. El permiso que falta suele estar en un directorio por encima. Linux resuelve una ruta componente a componente, y cada paso necesita permiso de búsqueda antes de intentar el siguiente. Lea la ruta completa, no la última línea del listado.
El permiso de lectura es el último paso, no el único
Abrir un archivo exige que el núcleo recorra desde la raíz o el directorio de trabajo cada componente de la ruta. Un directorio sin permiso de búsqueda detiene ese recorrido con un error de permiso. El modo del propio archivo nunca se consulta, así que una clave perfectamente legible parece ilegible. El error suele llegar al abrir sin nombrar el directorio, y por eso se culpa al archivo final.
Para un directorio, el bit de ejecución significa búsqueda, no ejecutar el contenido. Una clave sigue siendo dato, y ninguna parte de esta reparación exige marcarla como ejecutable.
Recorra la ruta como la cuenta del servicio
Enumere cada componente con su propietario y su modo, y luego repita la lectura como la identidad real del servicio. La diferencia entre su shell y el demonio suele ser toda la respuesta. Siga los enlaces simbólicos hasta el objetivo real, porque la ruta resuelta es lo que se comprueba.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
Un servicio también puede abrir archivos en más de una fase. Parte del material se lee durante la configuración privilegiada, mientras que otros archivos se abren después de soltar los privilegios. Una shell de root que lee el archivo no reproduce el acceso del trabajador posterior. Un espacio de nombres de montaje puede presentar otra vista de la misma ruta, sobre todo dentro de un contenedor, así que compare la vista del sistema de archivos del demonio con la suya.
Cambie el permiso más estrecho que encaje
Elija la disposición más pequeña que dé acceso al proceso: un grupo controlado con búsqueda en los directorios necesarios, una ubicación gestionada que el servicio ya posea, u otro mecanismo documentado. Leer un archivo no requiere permiso de escritura en su directorio. Un permiso amplio de escritura de grupo sobre configuración privilegiada no es una reparación normal del recorrido. El 0777 recursivo tampoco es una solución.
Registre qué componente cambió y por qué. Un cambio de permiso sin una razón registrada es difícil de revisar y fácil de olvidar.
Mire más allá de los modos solo después del recorrido
Si los bits de modo parecen suficientes, las comprobaciones restantes son las ACL, la política de seguridad y las restricciones de la sandbox. Una ACL puede conceder acceso que los bits de modo sugieren ausente, o denegar acceso que parecen permitir. Esos ajustes pertenecen al propietario actual de la configuración, y deben ajustarse de forma estrecha en lugar de desactivarse. Una diferencia de raíz o de directorio de trabajo también puede explicar una ruta absoluta que funciona en un contexto y falla en otro.
No pierda de vista qué es el archivo mientras arregla el acceso. Un certificado CA es público por diseño; una clave privada no. Los archivos que el cliente reescribe también necesitan derechos de escritura distintos de los de una clave de identidad que es de solo lectura. Inspeccione los metadatos sin imprimir secretos, y luego confirme que el servicio mismo funciona tras el cambio. Una nota breve en la documentación del servicio ahorra el mismo recorrido a la siguiente persona.