Право на пребарување во секој директориум пред клучот
Клучот може да биде 0600 и сепак да одбие да се отвори кога родителски директориум го блокира поминувањето. Проверете ја целата патека како сметката на услугата пред да смените кој било режим.
Режимот 0600 и вистинскиот сопственик не гарантираат дека услугата може да отвори клуч. Дозволата што недостига обично е на директориум над него. Linux ја решава патеката една компонента по една, и секој чекор бара дозвола за пребарување пред да се обиде следниот. Читајте ја целата патека, а не последниот ред од списокот.
Дозволата за читање е последниот чекор, а не единствениот
Отворањето датотека бара јадрото да помине од коренот или работниот директориум низ секоја компонента на патеката. Директориум без дозвола за пребарување го запира тоа поминување со грешка за дозвола. Режимот на самата датотека никогаш не се проверува, па совршено читлив клуч изгледа нечитлив. Грешката често доаѓа при отворање без да го именува директориумот, и затоа се обвинува последната датотека.
За директориум, битот за извршување значи пребарување, а не извршување на содржината. Клучот останува податок, и ниту еден дел од оваа поправка не бара да се означи како извршен.
Поминете ја патеката како сметка на услугата
Наведете ја секоја компонента со нејзиниот сопственик и режим, потоа повторете го читањето како вистински идентитет на услугата. Разликата помеѓу вашата обвивка и демонот често е целиот одговор. Следете ги симболичките врски до вистинската цел, зашто се проверува решената патека.
namei -l /etc/openvpn/client/office.key
sudo -u vpn-reader stat -c '%A %U:%G %n' /etc/openvpn/client/office.key
Услугата може да отвора датотеки и во повеќе од една фаза. Дел од материјалот се чита при привилегирано поставување, додека други датотеки се отвораат откако ќе се отфрлат привилегиите. Root обвивка што ја чита датотеката не го репродуцира пристапот на подоцнежниот работник. Просторот на имиња за монтирање може да прикаже различен поглед на истата патека, особено во контејнер, па споредете го погледот на податочниот систем на демонот со вашиот.
Сменете ја најтесната дозвола што одговара
Изберете го најмалото уредување што му дава пристап на процесот: контролирана група со пребарување на потребните директориуми, управувано место што услугата веќе го поседува, или друг документиран механизам. Читањето датотека не бара дозвола за пишување на нејзиниот директориум. Широката дозвола за пишување на групата врз привилегирана конфигурација не е вообичаена поправка на поминувањето. Рекурзивниот 0777 исто така не е решение.
Запишете која компонента ја сменивте и зошто. Промена на дозвола без запишана причина тешко се прегледува и лесно се заборава.
Гледајте подалеку од режимите само по поминувањето
Ако битовите на режимот изгледаат доволни, останатите проверки се ACL, безбедносна политика и ограничувања на sandbox. ACL може да даде пристап што битовите на режимот го навестуваат како отсутен, или да одбие пристап што тие изгледаат дека го дозволуваат. Тие поставки му припаѓаат на постојниот сопственик на конфигурацијата, и треба да се прилагодат тесно наместо да се исклучат. Разликата во коренот или работниот директориум исто така може да објасни апсолутна патека што работи во еден контекст, а не успева во друг.
Не губете го прегледот за тоа што е датотеката додека го поправате пристапот. Сертификатот CA е јавен по дизајн; приватниот клуч не е. Датотеките што клиентот ги препишува исто така бараат поинакви права за пишување од клучот за идентитет што е само за читање. Прегледајте ги метаподатоците без печатење тајни, потоа потврдете дека самата услуга работи по промената. Кратка забелешка во документацијата на услугата му заштедува на следниот човек истото поминување.