Varför nosuid hindrar en VPN-hjälpare att bli root
En krypterad hemkatalog och en nosuid-montering är olika egenskaper. Hjälparen behöver en betrodd installationssökväg och en startkontext som respekterar dess privilegiebit.
Diskkryptering och en nosuid-montering låter som varianter av samma idé, och de har ingenting med varandra att göra. Den ena skyddar data i vila, och den andra avgör om kärnan respekterar en privilegiebit i det ögonblick ett program startar. En hjälpare som inte når den identitet den förväntar sig klagar över det andra. Antagandet att det första är ansvarigt får folk att installera om klienter som aldrig var trasiga.
Två Oberoende Egenskaper
Diskkryptering svarar på vem som kan läsa blocken när maskinen är avstängd. Ett monteringsalternativ svarar på vad kärnan gör med en fils lägesbitar när någon kör den. Inget i det första begränsar det andra, och en helt krypterad bärbar dator kan montera ett filsystem med alla begränsningar på plats.
Att läsa dem som en enda egenskap är det som skapar teorin att en krypterad hemkatalog hindrar root-åtkomst. Den teorin överlever eftersom de två symptomen dyker upp på samma maskin, inte för att de delar en orsak.
Vad Som Faktiskt Undertrycker Övergången
execve-referensen beskriver hur en körbar fil med set-user-ID ändrar den nya processens effektiva identitet till filens ägare. Samma sida listar villkoren som undertrycker den övergången och motsvarigheten för grupp-ID:n: en no_new_privs-inställning, ett filsystem monterat med nosuid och en process som spåras. Filkapaciteter ignoreras under samma villkor. Dessa fyra regler täcker nästan varje rapport av det här slaget.
Den listan förklarar varför läget som ls skriver ut aldrig är hela auktoriseringshistorien. Den säger inte vilket villkor som orsakade ett visst felmeddelande, och programmet kan rapportera en orelaterad autentiseringsåtgärd med samma ordalydelse. Anteckna det exakta programmet, startaren och felsekvensen innan du drar en slutsats.
Identifiera den körbara fil som det stödda paketet installerade, dess ägare, dess verkliga sökväg och policyn för filsystemet som innehåller den. En kopia i en nedladdningsmapp är inte den installerade hjälparen, vad dess läge än säger.
Vad Man Inte Ska Göra
Att sätta set-user-ID-bitar på en overifierad binärfil och flytta den runt tills begränsningen försvinner är ingen reparation. Det ersätter en policy du inte förstod med en privilegie du inte kan granska, och samma teknik använd på en hjälpare är en välkänd eskaleringsväg. Att ta bort nosuid från en montering är värre, eftersom det påverkar varje program på det filsystemet, inte bara ett.
Den stödda vägen är klientens dokumenterade installation av hjälparen eller tjänsten, utförd av en administratör, som placerar binärfilen där policyn förväntar den. Det behåller en privilegiemekanism i stället för två.
Bekräfta Den Verkliga Startkontexten
Efter en auktoriserad rättelse, kör hjälparen så som produkten kör den och inte från ett root-skal. Framgång som root bevisar ingenting om den väg en vanlig användare tar, och skillnaden mellan dessa två kontexter är precis det felet handlade om.
Bekräfta sedan nätverksoperationen som hjälparen finns för. En hjälpare som startar men inte kan konfigurera gränssnittet har flyttat problemet ett steg framåt, inte löst det.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
Anteckna monteringsalternativen och hjälparens ägarskap i samma anteckning. Annars upprepar nästa person som felsöker detta krypteringsteorin från början.