Právo procházení u každého adresáře před klíčem
Klíč může mít 0600 a přesto odmítnout otevření, když nadřazený adresář blokuje průchod. Projděte celou cestu jako servisní účet, než změníte jakýkoli režim.
Režim 0600 a správný vlastník nezaručují, že služba klíč otevře. Chybějící oprávnění bývá na adresáři nad ním. Linux rozkládá cestu po jednotlivých komponentách a každý krok potřebuje právo procházení, než se zkusí další. Čtěte celou cestu, ne poslední řádek výpisu.
Právo čtení je poslední krok, ne jediný
Otevření souboru vyžaduje, aby jádro prošlo od kořene nebo pracovního adresáře každou komponentou cesty. Adresář bez práva procházení tento průchod zastaví chybou oprávnění. Vlastní režim souboru se nikdy nezkoumá, takže dokonale čitelný klíč vypadá nečitelně. Chyba často přichází při otevření, aniž by pojmenovala adresář, a proto se viní poslední soubor.
U adresáře znamená spouštěcí bit procházení, ne spouštění obsahu. Klíč zůstává daty a žádná část této opravy nevyžaduje označit jej jako spustitelný.
Projděte cestu jako servisní účet
Vypište každou komponentu s jejím vlastníkem a režimem a potom čtení zopakujte jako skutečná identita služby. Rozdíl mezi vaší shell a démonem bývá celá odpověď. Sledujte symbolické odkazy k reálnému cíli, protože kontroluje se právě vyřešená cesta.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
Služba může soubory otevírat i ve více fázích. Některý materiál se čte během privilegovaného nastavení, zatímco jiné soubory se otevírají po odebrání oprávnění. Kořenová shell, která soubor čte, nereprodukuje přístup pozdějšího pracovníka. Prostor názvů připojení může ukazovat jiný pohled na stejnou cestu, zvláště uvnitř kontejneru, proto porovnejte pohled souborového systému démona s vaším.
Změňte nejužší oprávnění, které stačí
Zvolte nejmenší uspořádání, které procesu dá přístup: kontrolovanou skupinu s procházením potřebných adresářů, spravované umístění, které služba už vlastní, nebo jiný dokumentovaný mechanismus. Čtení souboru nevyžaduje právo zápisu do jeho adresáře. Široké právo zápisu skupiny na privilegovanou konfiguraci není běžná oprava průchodu. Rekurzivní 0777 také není řešení.
Zaznamenejte, kterou komponentu jste změnili a proč. Změna oprávnění bez zaznamenaného důvodu se těžko kontroluje a snadno zapomene.
Za režimy se dívejte až po průchodu
Pokud se bity režimu zdají dostatečné, zbývající kontroly jsou ACL, bezpečnostní politika a omezení sandboxu. ACL může udělit přístup, který bity režimu naznačují jako chybějící, nebo odepřít přístup, který vypadají, že povolují. Tato nastavení patří stávajícímu vlastníku konfigurace a měla by se upravit úzce, místo aby se vypínala. Rozdíl kořene nebo pracovního adresáře také může vysvětlit absolutní cestu, která funguje v jednom kontextu a v jiném selhává.
Neztrácejte ze zřetele, co je soubor, když opravujete přístup. Certifikát CA je veřejný záměrně, soukromý klíč ne. Soubory, které klient přepisuje, také potřebují jiná práva zápisu než identitní klíč, který je jen pro čtení. Prohlédněte metadata bez tisku tajemství, potom ověřte, že samotná služba po změně funguje. Krátká poznámka v dokumentaci služby ušetří dalšímu člověku stejný průchod.