Ílátið vildi ekki opna gönguna sína, svo forréttindaflaggran var sett inn, og nú virkar það. Sú röð sannaði aðeins að að minnsta kosti eitt leyfi vantaði, og hún segir ekkert um hvaða. Forréttindaúrræðið veitir sett af getu og aðgangi að tækjum sem er mun víðtækari en göngutengi þarf.

Hvað flaggran breytir í raun

Forréttindaílát fær víðtæka getu og aðgang að tækjum hýsilsins, sem er mun stærra leyfi en nettengingarleiðin krefst. Nákvæma mengið er skjalfest af keyrsluumhverfinu en ekki ákveðið af munnmælum, og Docker-skjöl um að keyra ílát lýsa tiltækum forréttindavalkostum. Ein yfirlestur nægir til að sjá að göngun er lítill hluti heildarinnar.

Tvær þrengri kröfur ná yfir flest VPN-ílát. Að stilla tengi krefst getu til netstjórnunar, og að opna göngutækið krefst aðgangs að þeirri tilteknu tækjanóð. Þetta eru aðskilin leyfi, og jafnvel bæði saman eru þrengri en almenna valkosturinn. Restin af forréttindamenginu hefur ekkert með gönguna að gera. Það er til fyrir vinnuálag sem þarf raunverulega aðgang á hýsilssviði, og VPN-ílát er venjulega ekki eitt af þeim.

Paraðu hverja villu við eina forsendu

Villuboðið segir þér hvaða forsenda vantar ef þú lest það áður en þú kæfir það. Boð um tækjanóð nefnir tækið, boð um óheimila aðgerð nefnir getu, og boð um einingu eða sysctl nefnir kjarnastuðning. Hver þeirra hefur aðra viðgerð, og aðeins ein þeirra er geta.

Skrá sem vantar verður áfram í burtu eftir að öll geta hefur verið veitt, og þess vegna breytir forréttindaúrræðið stundum engu. Ílátið ræsir, göngin mistekst ennþá, og raunverulega villan snérist aldrei um leyfi. Kjarnastuðningur er þriðja tilfellið og það sem auðveldast er að lesa rangt. Eining sem er ekki hlaðin á hýsilinn er ekki hægt að hlaða innan frá íláti án forréttinda, og að veita meiri getu inni í ílátinu breytir ekki ástandi hýsilsins.

Athugaðu kröfuna, ekki einkennið

Byrjaðu á minnsta kalli sem skjalið skjalfestir, keyrðu það og varðveittu nákvæman mistakatexta. Bættu síðan við einu leyfi í einu og athugaðu hvaða viðbót breytti niðurstöðunni.

ls -l /dev/net/tun
docker run --rm --cap-add NET_ADMIN --device /dev/net/tun image:tag
ip -br link show type tun

Ílát sem sér tækið og hefur getuna en mistekst samt segir þér að vandamálið sé annars staðar. Það er gagnleg niðurstaða, og forréttindaúrræðið hefði falið hana.

Athugaðu einnig tækjaleyfin á hýsilnum, því rétt veitt tækjanóð með röngu hópeignarhaldi framleiðir sömu villu og leyfi sem vantar.

Skráðu þrengstu leyfið sem virkar

Skrifaðu niður hvert tæki og hverja getu sem uppsetningin þarf, ásamt villunni sem réttlætti þau. Sú skrá er það sem gerir næsta manni kleift að fjarlægja eitthvað á öruggan hátt, og það er það sem endurskoðandi mun biðja um þegar íláti er tilkynnt sem forréttindaílát.

Farðu yfir samhengið í kringum það líka, því hýsilnet, hýsilmount og valkostir keyrsluumhverfis geta hvert um sig aukið áhrif leyfis. Einangrað rannsóknarkall sem sameinar þau öll er ekki framleiðslustilling, hversu vel sem það virkaði. Prófaðu forritið, DNS-hegðun þess og göngumistök áður en þú kallar uppsetninguna fullnaða. Leyfi til að búa til tengi er ekki útgöngustefna, og ílát sem getur göngað fullkomlega beinir samt öllu sem forritið sendir.

Tengdir greinar