Scroll to navigation

RUN0(1) run0 RUN0(1)

NAZWA

run0 - podnosi uprawnienia

SKŁADNIA

run0 [OPCJE...] [POLECENIE...]

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=.

STATUS ZAKOŃCZENIA

W przypadku powodzenia zwracane jest 0. Jeśli run0 nie uda się uruchomić sesji lub podane polecenie zawiedzie, zwrócona zostanie wartość niezerowa.

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.

ZOBACZ TAKŻE

systemd(1), systemd-run(1), sudo(8), machinectl(1)

UWAGI

1.
polkit
2.
Sekwencje specjalne ANSI (angielska Wikipedia)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

systemd 257.5