OPIS¶
run0 może posłużyć do
    tymczasowego i interaktywnego nabycie wyższych lub odmiennych
    uprawnień. Ma zbliżony skutek do sudo(8), lecz
    działa odmienne w kilku istotnych obszarach:
•Od wywołującego do
  wywołanych poleceń nie są dziedziczone
  poświadczone kontekstu bezpieczeństwa lub wykonania,
  ponieważ polecenia są przywoływane z nowej, izolowanej
  usługi, rozwidlonej przez menedżera usług.
•Uwierzytelnianie zachodzi za pomocą
  polkit[1], dzięki czemu wprowadzanie danych
  uwierzytelniających jest oddzielone od terminala (jeśli to tylko
  możliwe).
•Ze względów bezpieczeństwa,
  dla wywołanego polecenia jest przydzielany odrębny, izolowany
  pseudoterminal, co oddziela również jego czas istnienia.
•W implementacji nie jest wykorzystywana funkcja
  bitów dostępu do plików SetUID/SetGID.
Wszystko to powinno dać bezpieczniejszą i
    solidniejszą alternatywę dla mechanizmu sudo, w
    szczególności w środowiskach systemu operacyjnego, w
    którym nie jest dostępna obsługa SetUID/SetGID (np. po
    ustawieniu zmiennej NoNewPrivileges= w
    systemd-system.conf(5)).
Sesje wywołane za pomocą run0
    będą działały poprzez stos PAM
    "systemd-run0".
Proszę zauważyć, że run0
    zaimplementowano jako alternatywne, wielowywołaniowe
    przywołanie systemd-run(1). Oznacza to, że run0
    jest dowiązaniem symbolicznym do pliku wykonywalnego
    systemd-run i działa jak run0, gdy zostanie
    wywołane przez dowiązanie symboliczne; w innych sytuacjach
    działa jak systemd-run.
OPCJE¶
Obsługiwane są następujące opcje:
--unit=
Używa danej nazwy jednostki, zamiast wygenerowanej
  automatycznie.
Dodane w wersji 256.
 
--property=
Ustawia właściwość tworzonej
  jednostki usługi. Opcja ta przyjmuje przypisania w tej samej postaci,
  co polecenie 
set-property systemctl(1).
Dodane w wersji 256.
 
--description=
Zapewnia opis przywoływanej jednostki
  usługi. Jeśli się go nie poda, za opis
  posłuży samo polecenie. Zob. 
Description= w
  
systemd.unit(5).
Dodane w wersji 256.
 
--slice=
Tworzy nową część jednostki
  .service podanego wycinka (slice), zamiast korzystać z user.slice.
Dodane w wersji 256.
 
--slice-inherit
Tworzy nową część jednostki
  .service wycinka (slice), w którym został wywołany sam
  
run0. Opcję tę można połączyć
  z 
--slice=, wówczas wycinek podany poprzez 
--slice= jest
  umieszczany wewnątrz wycinka w którym wywołano polecenie
  
run0.
Przykład: run0 zostanie wywołany w wycinku
    foo.slice, a argumentem opcji --slice= będzie bar.
    Wówczas jednostka zostanie umieszczona pod foo-bar.slice.
Dodane w wersji 256.
 
--user=, -u, --group=, -g
Przełącza na podanego
  użytkownika/grupę, zamiast na roota.
Dodane w wersji 256.
 
--nice=
Uruchamia wywoływaną sesję z podanym
  poziomem priorytetu nice.
Dodane w wersji 256.
 
--chdir=, -D
Uruchamia wywoływaną sesję z podanym
  katalogiem roboczym. Jeśli nie poda się katalogu,
  domyślnie będzie to bieżący katalog roboczy
  — przy przełączaniu na użytkownika root albo
  katalog domowy użytkownika docelowego — w pozostałych
  przypadkach.
Dodane w wersji 256.
 
--setenv=NAZWA[=WARTOŚĆ]
Uruchamia wywoływaną sesję z
  ustawioną podaną zmienną środowiskową.
  Parametr ten można podać wielokrotnie, aby ustawić wiele
  zmiennych. Jeśli pominie się "=" i
  
WARTOŚĆ, użyta będzie wartość
  zmiennej o takiej samej nazwie ze środowiska
  wywołującego.
Dodane w wersji 256.
 
--background=KOLOR
Zmienia kolor tła na podany kolor ANSI, na czas
  trwania sesji. Jeśli nie poda się koloru, tło
  będzie zabarwione czerwonawo przy działaniu jako root i
  żółtawo, przy działaniu pod innym identyfikatorem
  użytkownika, jako przypomnienie działania ze zmienionymi
  uprawnieniami. Kolor należy podać jako kolor tła ANSI
  X3.64 SGR, tj. łańcuch, taki jak: "40",
  "41", ..., "47", "48;2;...",
  "48;5;...". Więcej na ten temat w artykule 
Sekwencje
  specjalne ANSI (angielska Wikipedia)[2]. Aby
  wyłączyć, należy podać
  łańcuch pusty.
Przykład: "--background=44" ustawi niebieskie
    tło.
Dodane w wersji 256.
 
--pty, --pipe
Żąda alokacji pseudo TTY dla sesji
  
run0 (przy opcji 
--pty), lub żąda
  bezpośredniego przekazywania deskryptorów plików STDIO
  wywołującego (przy opcji 
--pipe). Jeśli nie poda
  się żadnego z tych przełączników, albo poda
  oba, tryb zostanie wybrany automatycznie: jeśli standardowe
  wejście, standardowe wyjście i standardowe wyjście
  błędów są połączone z terminalem, to
  alokowany jest pseudoterminal; w innym przypadku odpowiednie deskryptory
  plików są przekazywane bezpośrednio.
Dodane w wersji 257.
 
--shell-prompt-prefix=ŁAŃCUCH
Ustawia łańcuch przedrostka zachęty
  powłoki. W ten sposób ostatecznie wpływa się na
  zmienną środowiskową 
$SHELL_PROMPT_PREFIX
  wywoływanego programu, która jest zwykle importowana do
  zachęty powłoki. Domyślnie – jeśli
  obsługiwane są emoji – pokazywane jest emoji
  superbohatera (🦸). To domyślne ustawienie można
  zmienić (lub wyłączyć) przekazując
  zmienną środowiskową
  
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX do 
run0, zob. niżej.
  Ustawienie łańcucha pustego wyłączy stosowania
  przedrostka zachęty powłoki.
Dodane w wersji 257.
 
--machine=
Dokonuje operacji w lokalnym kontenerze. Określa
  nazwę kontenera, z którym ma się
  połączyć.
Dodane w wersji 256.
 
--no-ask-password
Nie odpytuje użytkownika o uwierzytelnienie, do
  operacji wymagających dodatkowych uprawnień.
-h, --help
Wyświetla krótki komunikat pomocy i
  wychodzi.
--version
Wyświetla krótką informację o
  wersji i wychodzi.
Wszelkie argumenty wiersza polecenia występujące po
    pierwszym argumencie niebędącym opcją, stają
    się częścią wiersza polecenia dla
    wywoływanego procesu. Jeśli nie poda się wiersza
    polecenia, wywoływana jest powłoka interaktywna.
    Powłokę, która ma być wywołana, ustawia
    się za pomocą --setenv=POWŁOKA=... i obecnie
    domyślnie jest to powłoka użytkownika
    pierwotnego (a nie użytkownika docelowego) przy wywołaniu
    lokalnym, albo /bin/sh, jeśli korzysta się z
    --machine=.
ZMIENNE ŚRODOWISKOWE¶
Podobnie jak w przypadku systemd-run, sesja odziedziczy
    środowisko systemu od menedżera usług. Dodatkowo
    ustawione zostaną następujące zmienne
    środowiskowe:
$TERM
Skopiowana z 
$TERM wywołującego.
  Może być przesłonięta za pomocą opcji
  
--setenv=
Dodane w wersji 256.
 
$SUDO_USER
Ustawiana na nazwę pierwotnego użytkownika.
Dodane w wersji 256.
 
$SUDO_UID
Ustawiana na numeryczny, uniksowy identyfikator
  pierwotnego użytkownika.
Dodane w wersji 256.
 
$SUDO_GID
Ustawiana na główny, numeryczny, uniksowy
  identyfikator grupy pierwotnego użytkownika.
Dodane w wersji 256.
 
$SHELL_PROMPT_PREFIX
Domyślnie ustawiana na emoji superbohatera
  (jeśli jest to obsługiwane), lecz może być
  przesłonięta przez zmienną środowiskową
  
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX (zob. niżej) lub
  przełącznik 
--shell-prompt-prefix= (zob. wyżej).
Dodane w wersji 257.
 
Do run0 można przekazać
    następujące zmienne:
$SYSTEMD_RUN_SHELL_PROMPT_PREFIX
Jeśli ustawiona, przesłania domyślny
  przedrostek zachęty powłoki, który 
run0 ustawia
  dla przywołanej powłoki (emoji superbohatera). Ustawienie
  łańcucha pustego wyłączy stosowania przedrostka
  zachęty powłoki.
Dodane w wersji 257.