Man page - su(1)

Packages contains this manual

Available languages:

en pl tr uk ro sr de

Manual

SU

NAZWA
SKŁADNIA
OPIS
OPCJE
SYGNAŁY
PLIKI KONFIGURACYJNE
STATUS ZAKOŃCZENIA
PLIKI
UWAGI
HISTORIA
ZOBACZ TAKŻE
ZGŁASZANIE BŁĘDÓW
DOSTĘPNOŚĆ

NAZWA

su - uruchamia polecenie ze zmienionymi identyfikatorami użytkownika i grupy

SKŁADNIA

su [opcje] [ - ] [ użytkownik [ argument ...]]

OPIS

su pozwala uruchomić polecenie ze zmienionymi identyfikatorami użytkownika i grupy.

Wywołany bez określenia użytkownika , su domyślnie uruchomi powłokę interaktywną jako root . Wskazując użytkownika można podać dodatkowe argumenty , które zostaną przekazane do powłoki.

Ze względu na kompatybilność, su domyślnie nie zmienia bieżącego katalogu, lecz ustawia jedynie zmienne środowiskowe HOME (katalog domowy) i SHELL (powłoka), a jeśli docelowym użytkownikiem nie jest root, dodatkowo USER (użytkownik) i LOGNAME (nazwa logowania). Zaleca się zawsze korzystać z opcji --login (zamiast jej skrótu - ), aby uniknąć efektów ubocznych spowodowanych mieszanym środowiskiem.

Niniejsza wersja su do uwierzytelniania oraz do zarządzania kontami i sesją używa PAM. Część opcji konfiguracyjnych, które istnieją w innych implementacjach su , takie jak obsługa grupy wheel, należy ustawić za pomocą PAM.

su jest przeznaczony głównie dla użytkowników nieuprzywilejowanych; zalecanym rozwiązaniem dla użytkowników uprzywilejowanych (np. skryptów wykonywanych przez roota) jest korzystanie z polecenia runuser (1), które nie wykorzystuje uprawnienia ustawienia ID użytkownika podczas wykonania (suid), nie wymaga uwierzytelnienia i udostępnia oddzielną konfigurację PAM. Jeśli sesja PAM nie jest wymagana, zaleca się użycie polecenia setpriv (1).

Proszę zauważyć, że su we wszystkich przypadkach używa PAM ( pam_getenvlist (3)) do końcowej zmiany środowiska. Opcje wiersza poleceń takie jak --login i --preserve-environment wpływają na środowisko przed jego zmianą przez PAM.

Od wersji 2.38 su resetuje limity zasobów procesu: RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS oraz RLIMIT_NOFILE.

OPCJE

-c , --command polecenie

Przekazuje polecenie do powłoki za pomocą opcji -c .

-f , --fast

Przekazuje -f powłoce, co może, ale nie musi być przydatne, w zależności od powłoki.

-g , --group grupa

Określa podstawową grupę. Opcja jest dostępna tylko dla użytkownika root.

-G , --supp-group grupa

Określa dodatkową grupę. Opcja jest dostępna tylko dla użytkownika root. Pierwsza podana grupa dodatkowa jest używana jako grupa podstawowa, jeśli nie podano jej opcją --group .

- , -l , --login

Uruchamia powłokę jako powłokę logowania ze środowiskiem podobnym do rzeczywistego logowania.

Proszę zauważyć, że w systemach korzystających z systemd, nowa sesja może być zdefiniowana jako rzeczywisty punkt wejściowy do systemu. Jednak su nie tworzy rzeczywistej sesji (poprzez PAM) z tego punktu widzenia. Aby zainicjować pełną, rzeczywistą sesję trzeba użyć narzędzi takich jak systemd-run lub machinectl .

su :

• czyści wszystkie zmienne środowiskowe z wyjątkiem TERM i zmiennych podanych opcją --whitelist-environment

• inicjuje zmienne środowiskowe HOME , SHELL , USER , LOGNAME i PATH

• zmienia katalog na katalog domowy docelowego użytkownika

• ustawia argv[0] powłoki na " - ", aby uczynić z powłoki powłokę logowania

-m , -p , --preserve-environment

Zachowuje całe środowisko, tzn. nie ustawia HOME , SHELL , USER ani LOGNAME . Opcja jest ignorowana, jeśli podano także --login .

-P , --pty

Tworzy pseudoterminal dla sesji. Niezależny terminal zapewnia lepsze bezpieczeństwo, ponieważ użytkownik nie dzieli terminala z pierwotną sesją. W ten sposób unika się wstrzyknięcia ioctl TIOCSTI terminala oraz innych ataków na deskryptory pliku terminala. Całą sesję można też przenieść w tło (np. su --pty - użytkowik -c aplikacja & ). Jeśli włączono pseudoterminal, to su działa jako pośrednik między sesjami (synchronizuje standardowe wejście i wyjście).

Funkcja ta jest zaprojektowana głównie z myślą o powłokach interaktywnych. Jeśli standardowym wejściem nie jest terminal, lecz na przykład potok (np. echo "date" | su --pty ), to flaga ECHO pseudoterminala jest wyłączana, aby uniknąć zabałaganionego wyjścia.

-s , --shell powłoka

Uruchamia podaną powłokę zamiast domyślnej. Jeśli użytkownik docelowy ma ograniczoną powłokę (tzn. niewypisaną w /etc/shells ), to opcja --shell i zmienne środowiskowe SHELL są ignorowane, chyba że wywołującym użytkownikiem jest root.

Powłoka do uruchomienia jest wybierana zgodnie z podanymi regułami, w kolejności:

• powłoka podana opcją --shell

• powłoka ze zmiennej środowiskowej SHELL , jeśli podano opcję --preserve-environment

• powłoka podana we wpisie passwd docelowego użytkownika

• /bin/sh

--session-command= polecenie

Jak -c , lecz nie tworzy nowej sesji (niezalecane).

-T , --no-pty

Nie tworzy pseudoterminala; przeciwieństwo --pty i -P . Proszę zauważyć, że działanie bez pseudoterminala stanowi ryzyko eskalacji przywilejów poprzez wstrzyknięcie polecenia TIOCSTI/TIOCLINUX ioctl.

-w , --whitelist-environment lista

Nie resetuje zmiennych środowiskowych określonych w liście (używającej przecinka jako separatora) przy czyszczeniu środowiska do --login . Biała lista jest ignorowana w przypadku zmiennych środowiskowych HOME , SHELL , USER , LOGNAME i PATH .

-h , --help

Wyświetla ten tekst i wychodzi.

-V , --version

Wyświetla wersję i wychodzi.

SYGNAŁY

Po otrzymaniu jednego z sygnałów SIGINT , SIGQUIT lub SIGTERM , su używa go do zakończenia procesu potomnego, a później siebie samego. Jeśli proces potomny jest kończony sygnałem SIGTERM , to po nieudanej próbie i odczekaniu 2 sekund, proces jest zabijany za pomocą SIGKILL .

PLIKI KONFIGURACYJNE

su odczytuje pliki konfiguracyjne /etc/default/su i /etc/login.defs . Istotne dla su są następujące pozycje konfiguracji:

FAIL_DELAY (liczba)

Odstęp w sekundach po nieudanym uwierzytelnieniu. Musi być to całkowita liczba nieujemna.

ENV_PATH (łańcuch)

Określa zmienną środowiskową PATH dla zwykłego użytkownika. Wartością domyślną jest /usr/local/bin:/bin:/usr/bin .

ENV_ROOTPATH (łańcuch), ENV_SUPATH (łańcuch)

Określa zmienną środowiskową PATH dla roota. ENV_SUPATH ma pierwszeństwo. Wartością domyślną jest /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin .

ALWAYS_SET_PATH (wartość logiczna)

Jeśli jest ustawiona na yes , to w przypadku gdy nie podano --login ani --preserve-environment , su inicjuje PATH .

Zmienna środowiskowa PATH może być odmienna w systemach, w których /bin i /sbin połączono z /usr ; na tę zmienną ma też wpływ opcja wiersza poleceń --login oraz ustawienia systemu PAM (np. pam_env (8)).

STATUS ZAKOŃCZENIA

su zwykle kończy się ze statusem zakończenia wykonywanego polecenia. Jeśli polecenie zabito sygnałem, su zwróci numer sygnału zwiększony o 128.

Statusy zakończenia generowane przez sam program su :

1

Ogólny błąd przed wykonaniem żądanego polecenia

126

Żądane polecenie nie mogło być wykonane

127

Nie znaleziono żądanego polecenia

PLIKI

/etc/pam.d/su

domyślny plik konfiguracyjny PAM

/etc/pam.d/su-l

plik konfiguracyjny PAM, jeśli podano --login

/etc/default/su

plik konfiguracyjny logindef przypisany do polecenia

/etc/login.defs

globalny plik konfiguracyjny logindef

UWAGI

Ze względów bezpieczeństwa, su zawsze odnotowuje nieudane próby logowania w pliku btmp , lecz w ogóle nie pisze do pliku lastlog . To rozwiązanie można wykorzystać do kontroli zachowania su poprzez konfigurację PAM. Jeśli moduł pam_lastlog (8) ma wypisywać ostrzeżenie o nieudanych próbach logowania, należy skonfigurować pam_lastlog (8) tak, aby aktualizował również plik lastlog . Przykładowo:

session required pam_lastlog.so nowtmp

HISTORIA

To polecenie su pochodzi z su coreutils, które powstało w oparciu o implementację Davida MacKenziego. Wersję util-linux zrefaktoryzował Karel Zak.

ZOBACZ TAKŻE

setpriv (1), login.defs (5), shells (5), pam (8), runuser (1)

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.

DOSTĘPNOŚĆ

Polecenie su jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.