SU(1)

JMÉNO
su - spustí shell pod jiným uživatelským a skupinovým ID

POUŽITÍ

su [options] [-] [user [argument...]]

POPIS

su allows commands to be run with a substitute user and group ID.

Je-li zavolán bez udání uživatele, su spustí interaktivní shell jako root. Je-li uživatel zadán, lze zadat další argumenty a ty budou v takovém případě předány shellu.

Z důvodu zpětné kompatibility su ve výchozí podobě nemění pracovní adresář a z proměnných prostředí pouze změní HOME a SHELL (a USER a LOGNAME, není-li cílový uživatel root). Doporučuje se vždy použít přepínač --login (namísto jeho zkratky -), aby se zamezilo vedlejším účinkům způsobeným pomícháním prostředí.

Tato verze su používá pro autentizaci, autorizaci a správu relace PAM. Některé možnosti nastavení nacházející se v jiných implementacích su, jako podpora skupiny wheel, se musí nastavit přes PAM.

su is mostly designed for unprivileged users, the recommended solution for privileged users (e.g., scripts executed by root) is to use non-set-user-ID command runuser(1) that does not require authentication and provides separate PAM configuration. If the PAM session is not required at all then the recommended solution is to use command setpriv(1).

Pamatujte, že su ve všech případech používá PAM (pam_getenvlist(3)), aby upravil konečné prostředí. Přepínače příkazové řádky jako --login nebo --preserve-environment ovlivňují prostředí před tím, než je změněno systémem PAM.

Od verze 2.38 su resetuje omezení zdrojů procesu RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS a RLIMIT_NOFILE.

VOLBY

-c, --command=příkaz
    Předá příkaz shellu pomocí přepínače -c.

-f, --fast
    Předá shellu -f, což může, nebo nemusí být užitečné v závislosti na shellu.

-g, --group=skupina
    Určuje primární skupinu. Tento přepínač je dostupný pouze uživateli root.

-G, --supp-group=skupina
    Určuje doplňkovou skupinu. Tento přepínač je dostupný pouze uživateli root. První zadaná doplňková skupina se rovněž použije jako primární skupina, nebyl-li zadán přepínač --group.

-, -l, --login
    Start the shell as a login shell with an environment similar to a real login.

    Note that on systemd-based systems, a new session may be defined as a real entry point to the system. However, su does not create a real session (by PAM) from this point of view. You need to use tools like systemd-run or machinectl to initiate a complete, real session.

    su does:

        • vyčistí všechny proměnné prostředí kromě TERM a proměnných zadaných v --whitelist-environment

        • inicializuje proměnné prostředí HOME, SHELL, USER, LOGNAME a PATH

        • přejde do domovského adresáře cílového uživatele

        • nastaví argv[0] shellu na '-', aby se shell stal shellem přihlašovacím

-m, -p, --preserve-environment
    Zachová celé prostředí. Tj. nenastaví HOME, SHELL, USER, ani LOGNAME. Tento přepínač se ignoruje, byl-li uveden přepínač --login.

-P, --pty
    Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., su --pty - user -c application &). If the pseudo-terminal is enabled, then su works as a proxy between the sessions (sync stdin and stdout).

    Tato funkce je převážně navržena pro interaktivní relace. Pokud standardní vstup není terminál, ale například rourou (př. echo "date" | su --pty), pak příznak ECHO pseudoterminálu bude vypnut, aby se předešlo zaneřádění výstupu.

-s, --shell=shell
    Run the specified shell instead of the default. If the target user has a restricted shell (i.e., not listed in /etc/shells), the --shell option and the SHELL environment variables are ignored unless the calling user is root.

    The shell to run is selected according to the following rules, in order:

        • shell zadaný pomocí --shell

        • shell určený proměnnou prostředí SHELL, je-li použit přepínač --preserve-environment

        • shell uvedený v záznamu passwd cílového uživatele

        • /bin/sh

--session-command=příkaz
    Stejné jako -c, ale nevytvoří novou relaci. (Nedoporučuje se.)

-T, --no-pty*
    Do not create a pseudo-terminal, opposite of --pty and -P. Note that running without a pseudo-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection.

-w, --whitelist-environment=seznam
    Neresetuje proměnné prostředí uvedené v čárkou odděleném seznamu, když se čistí prostředí pro --login. Tento seznam se ignoruje pro proměnné prostředí HOME, SHELL, USER, LOGNAME a PATH.

-h, --help
    Zobrazí text nápovědy a skončí.

-V, --version
    Zobrazí verzi a skončí.

SIGNÁLY

Po přijetí signálu SIGINT, SIGQUIT nebo SIGTERM su ukončí svého potomka a poté ukončí sebe přijatým signálem. Potomek bude ukončen signálem SIGTERM. Při neúspěšném pokusu bude po 2 sekundách prodlení potomek zabit signálem SIGKILL.

KONFIGURAČNÍ SOUBORY

su reads the /etc/default/su and /etc/login.defs configuration files. The following configuration items are relevant for su:

FAIL_DELAY (číslo)
    Zpoždění v sekundách v případě selhání přihlášení. Hodnota musí být nezáporné celé číslo.

ENV_PATH (řetězec)
    Určuje proměnnou prostředí PATH pro běžné uživatele. Výchozí hodnota je /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (řetězec), ENV_SUPATH (řetězec)
    Určuje proměnnou prostředí PATH pro uživatele root. ENV_SUPATH má přednost. Výchozí hodnota je /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (pravdivostní hodnota)
    Je-li nastaveno na yes a --login a --preserve-environment nebyly-li zadány, su inicializuje PATH.

    Proměnná prostředí PATH se může lišit na systémech, kde /bin a /sbin jsou začleněny do /usr. Tato proměnná je rovněž ovlivněna přepínačem příkazové řádky --login a nastavením systému PAM (např. pam_env(8)).

NÁVRATOVÁ HODNOTA

su normally returns the exit status of the command it executed. If the command was killed by a signal, su returns the number of the signal plus 128.

Návratová hodnota vyrobená nástrojem su samotným:

1
    Obecná chyba před spuštěním požadovaného příkazu

126
    Požadovaný příkaz nebylo možné spustit

127
    Požadovaný příkaz nebyl nalezen

SOUBORY

/etc/pam.d/su
    výchozí konfigurační soubor PAM

/etc/pam.d/su-l
    konfigurační soubor PAM, byl-li zadán --login

/etc/default/su
    konfigurační soubor logindef určený tento nástroj

/etc/login.defs
    globální konfigurační soubor logindef

POZNÁMKY

Z bezpečnostních důvodů su vždy zaprotokoluje selhané pokusy o přihlášení to souboru btmp, avšak vůbec nezapisuje do souboru lastlog. Následující řešení pomocí nastavení PAM lze použít k ovlivnění chování su. Chcete-li používat modul pam_lastlog(8) pro vypisování varování o selhaných přihlašovacích pokusech, pak pam_lastlog(8) musí být nastaven tak, aby rovněž aktualizoval soubor lastlog. Například:

    session required pam_lastlog.so nowtmp

HISTORIE

Tento nástroj su byl odvozen z su v balíku coreutils, který byl založen na implementaci Davida MacKenzie. Verze v util-linux byl přepsána Karlem Žákem.

DALŠÍ INFORMACE

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

HLÁŠENÍ CHYB

Pro hlášení chyb (anglicky) použijte systém pro sledování problémů na

TIRÁŽ

Příkaz su je součástí balíku util-linux, který lze stáhnout z