Шифрирањето на дискот и приклучувањето со nosuid звучат како варијанти на истата идеја, а воопшто не се поврзани. Едното ги штити податоците во мирување, а другото одлучува дали јадрото ќе го почитува битот за привилегии во моментот кога програмата стартува. Помошник што не го достигнува идентитетот што го очекува се жали на второто. Претпоставката дека првото е одговорно ги тера луѓето да реинсталираат клиенти што никогаш не биле расипани.

Две неповрзани својства

Шифрирањето на дискот одговара на прашањето кој може да ги чита блоковите кога машината е исклучена. Опцијата за приклучување одговара на тоа што ќе направи јадрото со битовите за режим на датотеката кога некој ќе ја изврши. Ништо во првото не го ограничува второто, и целосно шифриран преносен сметач може да приклучи датотечен систем со сите ограничувања на место.

Нивното читање како едно својство е тоа што ја создава теоријата дека шифрираната домашна папка го спречува пристапот на root. Таа теорија опстојува затоа што двата симптома се појавуваат на истата машина, а не затоа што имаат заедничка причина.

Што всушност го потиснува преминот

Референцата за execve опишува како извршна датотека со set-user-ID ја менува ефективната идентитетот на новиот процес во идентитетот на сопственикот на датотеката. Истата страница ги наведува условите што го потиснуваат тој премин и еквивалентот за групните идентификатори: поставка no_new_privs, датотечен систем приклучен со nosuid и процес што се следи. Способностите на датотеката се игнорираат под истите услови. Тие четири правила покриваат речиси секој извештај од ваков вид.

Тој список објаснува зошто режимот што го печати ls никогаш не е целата приказна за авторизацијата. Не ви кажува кој услов предизвикал одредена порака за грешка, и апликацијата може да пријавува неповрзана операција со акредитиви со истите зборови. Запишете ја точната програма, стартерот и редоследот на грешки пред да донесете заклучок.

Определете ја извршната датотека што ја инсталирал поддржаниот пакет, нејзиниот сопственик, нејзината вистинска патека и политиката на датотечниот систем што ја содржи. Копија во папка за преземања не е инсталираниот помошник, што и да кажува нејзиниот режим.

Што да не се прави

Поставувањето битови set-user-ID на непроверена бинарна датотека и нејзиното преместување додека ограничувањето не исчезне не е поправка. Тоа заменува политика што не сте ја разбрале со привилегија што не можете да ја ревидирате, а истата техника применета на помошник е добро познат пат за ескалација. Отстранувањето на nosuid од приклучување е полошо, зашто влијае на секоја програма на тој датотечен систем, не само на една.

Поддржаниот пат е документираната инсталација на помошникот или услугата од клиентот, извршена од администратор, која ја става бинарната датотека таму каде што политиката ја очекува. Така останува еден механизам за привилегии наместо два.

Потврдете го вистинскиот контекст на стартување

По одобрена исправка, стартувајте го помошникот како што го стартува производот, а не од root школка. Успехот како root не докажува ништо за патеката што ја минува обичниот корисник, а разликата меѓу тие два контекста е токму она за што беше грешката.

Потоа потврдете ја мрежната операција за која постои помошникот. Помошник што стартува, но не може да го конфигурира интерфејсот, ја преместил проблема една фаза понапред, а не го решил.

findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper

Запишете ги опциите за приклучување и сопственоста на помошникот во истата белешка. Инаку следниот човек што ќе го отстранува дефектот ќе ја повтори теоријата за шифрирање од почеток.

Поврзани статии