Søgerettighed på hver mappe før nøglen
En nøgle kan være 0600 og alligevel nægte at åbne, når en overordnet mappe blokerer gennemløbet. Gå hele stien igennem som tjenestekontoen, før du ændrer en tilstand.
Tilstand 0600 og den rigtige ejer garanterer ikke, at tjenesten kan åbne en nøgle. Den manglende tilladelse sidder som regel på en mappe ovenover. Linux opløser en sti én komponent ad gangen, og hvert trin kræver søgerettighed, før det næste forsøges. Læs hele stien, ikke den sidste linje i visningen.
Læserettighed er det sidste trin, ikke det eneste
At åbne en fil kræver, at kernen går fra roden eller arbejdsmappen gennem hver komponent i stien. En mappe uden søgerettighed stopper den gennemgang med en tilladelsesfejl. Filens egen tilstand bliver aldrig undersøgt, så en fuldt læsbar nøgle ser ulæselig ud. Fejlen kommer ofte ved åbning uden at navngive mappen, og derfor får den sidste fil skylden.
For en mappe betyder eksekveringsbitten søgning, ikke afvikling af indholdet. En nøgle forbliver data, og ingen del af denne reparation kræver, at den markeres som eksekverbar.
Gå stien igennem som tjenestekontoen
List hver komponent med ejer og tilstand, og gentag derefter læsningen som tjenestens faktiske identitet. Forskellen mellem din shell og dæmonen er ofte hele svaret. Følg symbolske links til det virkelige mål, fordi det er den opløste sti, der kontrolleres.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
En tjeneste kan også åbne filer i mere end én fase. Noget materiale læses under privilegeret opsætning, mens andre filer åbnes, efter at privilegier er droppet. En root-shell, der læser filen, genskaber ikke den senere arbejders adgang. Et mount-navnerum kan vise en anden udgave af samme sti, især inde i en container, så sammenlign dæmonens filsystemvisning med din.
Ændr den snævreste tilladelse, der passer
Vælg den mindste ordning, der giver processen adgang: en kontrolleret gruppe med søgning på de nødvendige mapper, en administreret placering som tjenesten allerede ejer, eller en anden dokumenteret mekanisme. Læsning af en fil kræver ikke skriverettighed på dens mappe. Bred gruppe-skriverettighed på privilegeret konfiguration er ikke en normal gennemløbsreparation. Rekursiv 0777 er heller ikke en løsning.
Notér, hvilken komponent du ændrede, og hvorfor. En tilladelsesændring uden en noteret grund er svær at gennemgå og let at glemme.
Se først ud over tilstande efter gennemgangen
Hvis tilstandsbitterne ser tilstrækkelige ud, er de resterende kontroller ACL'er, sikkerhedspolitik og sandbox-begrænsninger. En ACL kan give adgang, som tilstandsbitterne antyder er fraværende, eller nægte adgang, som de lader til at tillade. De indstillinger tilhører den eksisterende konfigurationsejer og bør justeres snævert i stedet for at slås fra. En forskel i rod eller arbejdsmappe kan også forklare en absolut sti, der virker i én sammenhæng og fejler i en anden.
Tab ikke overblikket over, hvad filen er, mens du retter adgang. Et CA-certifikat er offentligt af design; en privat nøgle er ikke. Filer, som klienten genskriver, har også brug for andre skriverettigheder end en identitetsnøgle, der er skrivebeskyttet. Undersøg metadata uden at udskrive hemmeligheder, og bekræft derefter, at tjenesten selv virker efter ændringen. En kort note i tjenestedokumentationen sparer den næste person for den samme gennemgang.