VPN-knappen virker for administratoren og feiler for alle andre, så noen legger til en linje i sudoers. Den linjen lever vanligvis lenger enn problemet den skulle løse, og den gir ofte mer enn knappen trenger. Før du redigerer policyen, sjekk om den støttede eieren av tilkoblingen allerede kan gjøre jobben. De tre vilkårene nedenfor avgjør om sudo er involvert i det hele tatt.

Vilkår 1: den støttede eieren kan gjøre det uten sudo

På de fleste Linux-skrivebord eier nettverksbehandleren allerede VPN-tilkoblinger, og autorisasjonen går via polkit i stedet for sudo. En bruker som har lov til å heise en tilkobling kan gjøre det fra kommandolinjen uten noen root-regel. Sjekk hva behandleren tillater før du antar at knappen trenger privilegium. Hvis svaret er ja, løser sudoers-endringen et problem som ikke finnes.

nmcli connection show
nmcli connection up "Work VPN"

Hvis behandleren nekter, les hvorfor: en manglende polkit-regel, en tilkobling eid av en annen bruker eller en profil lagret der brukeren ikke kan lese den. Hver av disse har en støttet løsning som er smalere enn en sudo-regel. Privilegieheving er det siste middelet, ikke det første.

Vilkår 2: regelen navngir én kjørbar fil og argumentene dens

Hvis sudo virkelig er nødvendig, bør regelen navngi den nøyaktige kommandoen og, der det er mulig, argumentene den kan bruke. En regel som lar en bruker kjøre et innpakkingsskript er bare så trygg som rettighetene til det skriptet, fordi brukeren kan redigere det root skal kjøre. En regel med et jokertegn etter kommandoen er det samme problemet i kortere form.

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

Kontroller hver sti i kommandokjeden: binæren, skriptet den kaller, konfigurasjonsfilen den leser og enhver katalog imellom. Hvis brukeren kan skrive til noen av dem, er den avgrensede regelen i praksis ubegrenset root. Argumenter betyr også noe, fordi en kommando som godtar en konfigurasjonssti kan rettes mot en fil brukeren kontrollerer. Skriv regelen for operasjonen, ikke for knappen.

Stopp hvis kommandoen trenger en brukerkontrollert fil for å virke. Da er designet feil, og ingen sudoers-syntaks gjør det trygt.

Vilkår 3: hele policyen parses, ikke bare linjen din

Valider med editoren som låser filen og kontrollerer syntaks, og valider den sammensatte policyen i stedet for et fragment. En fil som parses alene kan fortsatt bryte inkluderingsrekkefølgen eller duplisere en regel på en måte som endrer oppførselen.visudo-håndboken dokumenterer både den låsende editoren og kontrollmodusen som brukes her.

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

Kontrollen rapporterer filen og linjen når den feiler, og nettopp den rapporten er den nyttige delen. Reparer den tiltenkte endringen gjennom editoren i stedet for å tvinge gjennom en kjent feil, fordi en ødelagt policy kan låse ute alle administratorer samtidig. Filer i inkluderingskatalogen trenger også eierskapet og modusen som håndboken krever, ellers blir de ignorert eller avvist. Syntaks er bare den første porten: når den er passert, les regelen på nytt og spør hva den faktisk tillater.

Stopp hvis den eneste måten å få endringen til å virke er å slå av syntakskontrollen. Det er ikke en policy, det er en driftsstans som venter på omstart.

Gjenoppretting: behold en økt som fortsatt virker

Før du lagrer, sørg for at en autorisert administrativ økt allerede er åpen og at det finnes en andre vei inn i maskinen. En sudoers-feil kan ta fra deg muligheten til å rette den, og en skrivebordsknapp er ikke den risikoen verdt. Hvis sudo allerede er ødelagt, bruk systemets dokumenterte gjenopprettingsvei i stedet for å improvisere en.

sudo -n true
id

Alternativer som pkexec avhenger av egen installasjon og policy, så de er ikke en garantert andre root-forespørsel. Hold lokal autorisasjon adskilt fra levering av VPN-hemmeligheten også: en sudo-regel kan ikke låse opp en fraværende hemmelighetsagent, og den oppfyller ikke MFA-en til gatewayen. Etter rettelsen, test den vanlige kontoen som bare utfører den tiltenkte operasjonen, og bruk deretter behandlerens vanlige kontroller.

Beslutningen slutter når du kan si hvilket vilkår som rettferdiggjorde sudo, hva regelen navngir, at hele policyen parses, og hvordan du ville gjenopprettet hvis ikke. En privilegert starter som koster deg administrativ tilgang er en dårlig handel, og den er vanligvis unngåelig.

Relaterte artikler