run0(1)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök


NAMN

run0 – höj privilegier

SYNOPSIS

run0 [OPTIONER...] [KOMMANDO...]

BESKRIVNING

run0 används för att tillfälligt och interaktivt skaffa högre eller andra privilegier.

Verktyget fyller ungefär samma funktion som sudo(8), men fungerar annorlunda på flera viktiga punkter:

  • inga körnings- eller säkerhetsuppgifter ärvs direkt från den anropande processen
  • kommandot körs i en ny, isolerad tjänst som startas av tjänstehanteraren
  • autentisering sker via polkit
  • autentiseringsfrågan isoleras från terminalen när det är möjligt
  • en separat pseudo-TTY skapas för kommandot
  • implementationen använder inte SetUID- eller SetGID-bitar

Detta är avsett att ge ett säkrare och mer robust alternativ till sudo, särskilt i system där SetUID/SetGID inte används eller inte är tillgängligt.

Ett exempel är system där:

NoNewPrivileges=

har aktiverats i systemd-system.conf(5).

Alla sessioner som startas via run0 körs genom PAM-stacken:

systemd-run0

run0 är implementerat som ett alternativt anropsläge för systemd-run(1).

Det betyder att run0 normalt är en symbolisk länk till programfilen systemd-run. När programmet startas via länken beter det sig som run0, annars som systemd-run.

OPTIONER

--unit=

Använd angivet unit-namn i stället för ett automatiskt skapat namn.
Tillagd i version 256.

--property=

Ange en egenskap för den tjänsteenhet som skapas.
Formatet är samma som för:
systemctl set-property
Se systemctl(1).
Tillagd i version 256.

--description=

Ange en beskrivning för tjänsteenheten.
Om ingen beskrivning anges används kommandot självt.
Se Description= i systemd.unit(5).
Tillagd i version 256.

--slice=

Placera den nya tjänsteenheten i angiven slice i stället för user.slice.
Tillagd i version 256.

--slice-inherit

Placera den nya tjänsteenheten i den slice där run0 självt körs.
Kan kombineras med --slice=.

Exempel: om run0 körs i foo.slice och --slice=bar anges placeras enheten i:

foo-bar.slice
Tillagd i version 256.

--user=, -u

Byt till angiven användare.

--group=, -g

Byt till angiven grupp.
Standard är root, om inte --area= eller --empower används. Då används i stället den anropande användaren.
Tillagd i version 256.

--nice=

Kör sessionen med angivet nice-värde.
Tillagd i version 256.

--chdir=, -D

Kör sessionen i angiven arbetskatalog.
Vid byte till root används normalt klientens aktuella katalog.
Vid byte till en annan användare används normalt målanvändarens hemkatalog.
Tillagd i version 256.

--via-shell

Starta målanvändarens inloggningsskal och kör kommandot genom det.
Tillagd i version 258.

-i

Kortform för:
--via-shell --chdir='~'
Tillagd i version 258.

--setenv= NAMN[=VÄRDE]

Sätt en miljövariabel för sessionen.
Optionen kan anges flera gånger.
Om =VÄRDE utelämnas används värdet från den anropande miljön.
Tillagd i version 256.

--background= FÄRG

Ändra terminalens bakgrundsfärg under sessionen.
Om ingen färg anges används normalt en rödaktig ton för root och en gulaktig ton för annan UID.
Färgen ska anges som en ANSI X3.64 SGR-bakgrundsfärg.

Exempel:

--background=44

ger blå bakgrund.

En tom sträng stänger av färgändringen.
Tillagd i version 256.

--pty

Skapa en pseudo-TTY för sessionen.

--pty-late

Som --pty, men börja använda TTY:n först när tjänstestarten är klar.
Detta lämnar terminalinmatningen till lösenords- eller polkit-agenter under uppstarten.

--pipe

Skicka den anropande processens standardflöden direkt till den nya processen.

Om ingen av dessa anges väljs läget automatiskt.

Om standardindata, standardutdata och standardfel är anslutna till en TTY används normalt pseudo-TTY.

Annars skickas filbeskrivarna direkt.

--pty och --pipe lades till i version 257.

--pty-late lades till i version 258.

--shell-prompt-prefix= STRÄNG

Ange prefix för skalprompten.
Detta styr miljövariabeln:
SHELL_PROMPT_PREFIX
Standard är en superhjälte-emoji om terminalen stöder detta.
En tom sträng stänger av prefixet.
Tillagd i version 257.

--lightweight= BOOLEAN

Styr om målanvändarens per-user service manager ska aktiveras.
Standard är auto.
För root och systemanvändare aktiveras den normalt inte.
För vanliga användare aktiveras den normalt.
Detta påverkar XDG_SESSION_CLASS som används av pam_systemd(8).
Tillagd i version 258.

--area= OMRÅDE

Logga in i ett särskilt område för målkontot.
Ett område är en sekundär hemkatalog under användarens vanliga hemkatalog.

Exempel:

~/Areas/foobar
Om endast ett område anges, utan --user=, används den anropande användaren.
Detta påverkar miljövariabeln XDG_AREA.
Se pam_systemd_home(8).
Tillagd i version 258.

--empower

Höj privilegierna för vald användare eller aktuell användare.
För närvarande innebär detta att processen får alla tillgängliga capabilities och att gruppen empower läggs till som extra grupp.
Andra processer som körs som samma användare kan fortfarande påverka den privilegierade processen.
Funktionen bör därför användas försiktigt i miljöer där skadliga processer kan köras som samma användare.
Tillagd i version 259.

--same-root-dir

Kör sessionen i samma rotkatalog som det anropande run0-kommandot.
Tillagd i version 259.

--machine=

Kör operationen i en lokal container.
Ange containerns namn.
Tillagd i version 256.

--no-ask-password

Fråga inte användaren efter autentisering för privilegierade operationer.

-h, --help

Visa kort hjälptext och avsluta.

--version

Visa kort versionsinformation och avsluta.

Alla kommandoradsargument efter det första argument som inte är en option blir del av kommandot som startas.

Om inget kommando anges startas ett interaktivt skal.

Med --via-shell används målanvändarens skal.

Annars kan skalet anges med:

--setenv=SHELL=...

Lokalt används normalt den anropande användarens skal.

Med --machine= används normalt:

/bin/sh

Till skillnad från sudo startar run0 alltid skal med inloggningsskalets semantik, oavsett om -i används.

AVSLUTNINGSSTATUS

0

Sessionen startades och kommandot lyckades.

Ett värde som inte är noll returneras om sessionen inte kunde startas eller om det angivna kommandot misslyckades.

MILJÖVARIABLER

Liksom systemd-run(1) ärver sessionen systemmiljön från tjänstehanteraren.

Dessutom sätts följande variabler:

TERM

Kopieras från den anropande processen.
Kan åsidosättas med --setenv=.

SUDO_USER

Sätts till den ursprungliga användarens användarnamn.

SUDO_UID

Sätts till den ursprungliga användarens numeriska UID.

SUDO_GID

Sätts till den ursprungliga sessionens primära numeriska GID.

SHELL_PROMPT_PREFIX

Sätts normalt till en superhjälte-emoji om detta stöds.
Kan ändras med SYSTEMD_RUN_SHELL_PROMPT_PREFIX eller --shell-prompt-prefix=.

Följande variabel kan skickas till run0:

SYSTEMD_RUN_SHELL_PROMPT_PREFIX

Åsidosätter standardprefixet för skalprompten.
En tom sträng stänger av prefixet.

SE ÄVEN

ANMÄRKNINGAR

Polkit:

https://www.freedesktop.org/wiki/Software/polkit

ANSI Escape Code:

https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters

KOLOFON

Denna sida är en del av projektet systemd, system- och tjänstehanteraren.

Information om projektet finns på:

http://www.freedesktop.org/wiki/Software/systemd

Sidan hämtades från projektets uppströms Git-förråd:

https://github.com/systemd/systemd.git

den 24 maj 2026.

Vid den tidpunkten var den senaste hittade commiten daterad den 24 maj 2026.

Renderingsfel och förbättringar av HTML-versionen kan rapporteras till:

man-pages@man7.org

HÄNVISAD FRÅN

KORT SAMMANFATTNING

run0 är systemd:s alternativ till sudo.

Kör ett kommando som root:

run0 id

Starta ett interaktivt root-skal:

run0

Kör som en annan användare:

run0 --user=annan id

Starta via målanvändarens skal:

run0 --via-shell kommando

Kör i en viss katalog:

run0 --chdir=/root ls

Kör i en lokal container:

run0 --machine=min-container id

Till skillnad från sudo körs kommandot i en separat systemd-tjänst med polkit-autentisering och isolerad pseudo-TTY.

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/run0.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webbhotell.