Permiso de busca en cada directorio antes da clave
Unha clave pode ser 0600 e aínda negarse a abrir cando un directorio pai bloquea o percorrido. Percorra todo o camiño como a conta do servizo antes de cambiar calquera modo.
O modo 0600 e o propietario correcto non garanten que o servizo poida abrir unha clave. O permiso que falta adoita estar nun directorio por riba. Linux resolve un camiño compoñente a compoñente, e cada paso necesita permiso de busca antes de intentar o seguinte. Lea o camiño completo, non a última liña da listaxe.
O permiso de lectura é o último paso, non o único
Abrir un ficheiro esixe que o núcleo percorra desde a raíz ou o directorio de traballo cada compoñente do camiño. Un directorio sen permiso de busca detén ese percorrido cun erro de permiso. O modo do propio ficheiro nunca se consulta, así que unha clave perfectamente lexible parece ilexible. O erro adoita chegar ao abrir sen nomear o directorio, e por iso se culpa o ficheiro final.
Para un directorio, o bit de execución significa busca, non executar o contido. Unha clave segue a ser dato, e ningunha parte desta reparación esixe marcala como executable.
Percorra o camiño como a conta do servizo
Enumere cada compoñente co seu propietario e o seu modo, e despois repita a lectura como a identidade real do servizo. A diferenza entre a súa shell e o daemon adoita ser toda a resposta. Siga as ligazóns simbólicas ata o obxectivo real, porque o camiño resolto é o que se comproba.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
Un servizo tamén pode abrir ficheiros en máis dunha fase. Parte do material lese durante a configuración privilexiada, mentres que outros ficheiros se abren despois de soltar os privilexios. Unha shell de root que le o ficheiro non reproduce o acceso do traballador posterior. Un espazo de nomes de montaxe pode presentar outra vista do mesmo camiño, sobre todo dentro dun contedor, así que compare a vista do sistema de ficheiros do daemon coa súa.
Cambie o permiso máis estreito que encaixe
Escolla a disposición máis pequena que dea acceso ao proceso: un grupo controlado con busca nos directorios necesarios, unha localización xestionada que o servizo xa posúa, ou outro mecanismo documentado. Ler un ficheiro non require permiso de escritura no seu directorio. Un permiso amplo de escritura de grupo sobre configuración privilexiada non é unha reparación normal do percorrido. O 0777 recursivo tampouco é unha solución.
Rexiste que compoñente cambiou e por que. Un cambio de permiso sen unha razón rexistrada é difícil de revisar e fácil de esquecer.
Mire máis alá dos modos só despois do percorrido
Se os bits de modo parecen suficientes, as comprobacións restantes son as ACL, a política de seguridade e as restricións da sandbox. Unha ACL pode conceder acceso que os bits de modo suxiren ausente, ou denegar acceso que parecen permitir. Eses axustes pertencen ao propietario actual da configuración, e deben axustarse de forma estreita en lugar de desactivarse. Unha diferenza de raíz ou de directorio de traballo tamén pode explicar un camiño absoluto que funciona nun contexto e falla noutro.
Non perda de vista que é o ficheiro mentres arranxa o acceso. Un certificado CA é público por deseño; unha clave privada non. Os ficheiros que o cliente reescribe tamén necesitan dereitos de escritura distintos dos dunha clave de identidade que é de só lectura. Inspeccione os metadatos sen imprimir segredos, e logo confirme que o servizo mesmo funciona tras o cambio. Unha nota breve na documentación do servizo aforra o mesmo percorrido á seguinte persoa.