Konsolen är ett privilegium: varför den begär en egen behörighet

En konsol ser ut som en skärm men är ett skal. Och "får ändra inställningar" och "får öppna ett skal" är två skilda makter; att ta det ena för det andra är att dela ut root.

AtlasPVE ·

Den här artikeln svarar på

  • proxmox konsolbehörighet
  • vad är sys.console i proxmox
  • proxmox ge användare skalåtkomst
  • proxmox rollrättigheter
  • proxmox vnc åtkomsträtt

En konsol ser ut som en skärm. Du öppnar den, ett fönster dyker upp, text rullar i det. Det känns som "jag bara tittar".

Men en konsol är ett skal. Och tjänarens skal är den högsta rätt som finns på den maskinen.

Två skilda makter

Att ändra inställningar. Du kan göra det gränssnittet tillåter. Gränserna är tydliga, för det är gränssnittet som drar dem.

Att öppna ett skal. Du kan göra vad som helst. Även det gränssnittet skulle vägra och det gränssnittet aldrig hört talas om.

Dessa två makter rymmer inte varandra. Att ha den ena kräver inte den andra, och viktigare: att bevilja den ena bör inte betyda att man beviljar den andra.

Skillnaden är verklig och syns i de inbyggda rollerna

Proxmox binder konsolen till en egen behörighet, inte till det allmänna "får ändra". Att det är verkligt ser du i de inbyggda rollerna: rollen som systemadministratör bär gransknings-, konsol- och loggrätterna och innehåller ingen ändringsrätt.

Det är alltså en giltig uppsättning att ge någon rätten att öppna en konsol utan rätten att ändra inställningar. Och tvärtom också.

Den vanliga situation som gör detta viktigt

Proxmox tillåter egna roller, och en sådan roll är mycket vanlig: en operatör som får ändra nätverksinställningar men inte ska nå tjänarens skal.

Det är en rimlig önskan. Att ändra nätverksinställningar och att köra vilket kommando som helst på tjänaren är inte samma sak.

Men resonerar en produkt "får hen ändra, får hen också öppna konsolen", ger den den operatören ett rotskal utan att märka det. Hen får via panelen vad hen inte skulle få i Proxmox.

Den allmänna princip som följer

En behörighetsmodell måste kopiera plattformens egen definition, inte skriva om den.

En port som säger "ungefär samma sak" fungerar rätt på vanliga uppsättningar och ingen märker något. Luckan öppnas den dag en ovanlig roll skapas. Och när den dagen kommer minns ingen en approximation skriven flera år tidigare.

Samma ribba gäller filåtkomst

Ännu ett detalj, för det förbises ofta: åtkomst till tjänarens filsystem motsvarar ett skal även när den bara är läsande.

Skälet är enkelt: lösenordsfiler, nycklar och klusterhemligheter ligger i det filsystemet. Den som med en enbart läsande rätt kan läsa filer kan redan få veta allt.

Filåtkomst kan alltså inte beviljas med en rätt att "titta"; den kräver samma ribba som ett skal.

Vad Atlas gör

I Atlas är konsolen, fjärrskalet och filåtkomsten bundna till enbart konsolbehörigheten. Ändringsrätten ensam öppnar inte dessa ytor.

Så har det inte alltid varit, och artikeln måste sluta ärligt: förr godtog dessa ytor även ändringsrätten. Kommentaren i koden sa rätt sak, den sa "motsvarigheten är konsolbehörigheten", men koden gjorde något annat.

Det upptäcktes genom att mäta mot Proxmox egen definition, och det rättades. Mätresultatet var tydligt: Proxmox binder skalet enbart till konsolbehörigheten och godtar inte ändringsrätten.

Den verkliga tyngden ska också sägas som den är: det gick inte att utnyttja med inbyggda roller, eftersom den enda inbyggda roll som innehåller ändringsrätten också har konsolbehörigheten. Risken låg i egna roller, alltså i exemplet med nätverksoperatören ovan.

Läxan som följer gäller också produkten själv: att en kommentar har rätt betyder inte att koden har rätt. De två måste mätas var för sig.

Källor

Proxmox egen dokumentation. På engelska, och den har sista ordet i den här frågan.

Relaterade artiklar

Hur ser det här ut inne i Atlas?

Gå till produktsidan