SU(1)

НАЗИВ
su - покреће наредбу са заменским корисником и ИД-ом групе

УВОД

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

ОПИС

su омогућава наредбама да буду покренуте са заменским корисником и ИД-ом групе.

Када је позвана без наведеног корисника, su подразумева покретање међудејствене шкољке као админ. Када је корисник наведен, додатни аргументи се могу доставити, у ком случају се прослеђују шкољци.

Зарад повратне сагласности, su подразумева да не промени текући директоријум и да постави само променљиве окружења HOME и SHELL (плус USER и LOGNAME ако циљни корисник није администратор). Препоручује се да се увек користи опција --login (уместо њене скраћенице -) да би се избегли споредна дејства изазвана мешањем окружења.

Ово издање su користи PAM за управљање потврђивањем идентитета, налогом и сесијом. Неке опције подешавања нађене у другим su применама, као што је подршка за групу точка, треба да се подесе путем PAM-а.

su је углавном осмишљена за кориснике без привилегија, препоручено решење за привилеговане кориснике (нпр., скрипте које изврши администратор) је да користе „non-set-user-ID“ наредбу runuser(1) која не захтева потврђивање идентитета и обезбеђује засебно PAM подешавање. Ако PAM сесија није уопште потребна тада је препоручено решење да се користи наредба setpriv(1).

Знајте да su у свим случајевима користи PAM (pam_getenvlist(3)) да уради крајњу измену окружења. Опције линије наредби --login и --preserve-environment утичу на окружење пре него ли се измени са PAM-ом.

Од издања 2.38 su поново поставља ограничења изворишта процеса RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS и RLIMIT_NOFILE.

ОПЦИЈЕ

-c, --command наредба
    Pass command to the shell with the -c option. Creates a new session via setsid(2). Refer to --session-command to keep the same session.

-f, --fast
    Прослеђује -f шкољци, што може или не мора бити корисно, у зависности од шкољке.

-g, --group група
    Наводи примарну групу. Ова опција је доступна само администраторима.

-G, --supp-group група
    Наводи додатну групу. Ова опција је доступна само администратору. Прва наведена додатна група се такође користи као примарна група ако опција --group није наведена.

-, -l, --login
    Покреће шкољку као пријавну шкољку са окружењем сличном стварном пријављивању.

    Note that on systemd(1)-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(1) or machinectl(1) to initiate a complete, real session.

    su ради:

        • clear all the environment variables except TERM, COLORTERM, NO_COLOR and variables specified by --whitelist-environment

        • initialize the environment variables HOME, SHELL, USER, LOGNAME, and PATH

        • change to the target user’s home directory

        • set argv[0] of the shell to '-' in order to make the shell a login shell

-m, -p, --preserve-environment
    Очувава читаво окружење, тј. не поставља ЛИЧНА, ШКОЉКА, КОРИСНИК или ПРИЈАВНО-ИМЕ. Ова опција се занемарује ако је опција --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. Please note security advice about TIOCSTI vulnerability below.

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

    Ова функција је углавном осмишљена за међудејствене сесије. Ако стандардни улаз није терминал, већ на пример спојка (нпр., echo "датум" | su --pty), тада је заставица ECHO за псеудотерминал искључена да би се избегао неуредан излаз.

-s, --shell шкољка
    Покреће наведену шкољку уместо основне. Ако циљни корисник има ограничену шкољку (тј. није на списку у /etc/shells), опција --shell и променљиве окружења ШКОЉКА се занемарују осим ако корисник позивар није администратор.

    Шкољка за покретање се бира у складу са следећим правилима, овим редом:

        • шкољка наведена опцијом --shell

        • шкољка наведена у променљивој окружења ШКОЉКА, ако се користи опција --preserve-environment

        • шкољка која се налази на списку уноса лозинке крајњег корисника

        • /bin/sh

--session-command=наредба
    Same as -c, but do not create a new session. (Discouraged.) Please note security advice about TIOCSTI vulnerability below.

-T, --no-pty
    Do not create a pseudo-terminal, opposite of --pty and -P. Please note security advice about TIOCSTI vulnerability below.

-w, --whitelist-environment списак
    Не поставља поново променљиве окружења наведене на зарезом раздвојеном списку приликом чишћења окружења за --login. Празан списак се занемарује за променљиве окружења ЛИЧНА, ШКОЉКА, КОРИСНИК, ПРИЈАВНО-ИМЕ и ПУТАЊА.

-h, --help
    Приказује текст помоћи и излази.

-V, --version
    Исписује издање и излази.

СИГНАЛИ

Након што прими SIGINT, SIGQUIT или SIGTERM, su окончава свој пород и након тога окончава саму себе примљеним сигналом. Пород се окончава SIGTERM-ом, након неуспелог покушаја и 2 секунде застоја пород се убија SIGKILL-ом.

ДАТОТЕКЕ ПОДЕШАВАЊА

su чита /etc/default/su и /etc/login.defs датотеке подешавања. Следеће ставке подешавања су значајне за su:

FAIL_DELAY (број)
    Застој у секундама у случају неуспеха потврђивања идентитета. Број мора бити не-негативан цео број.

ENV_PATH (ниска)
    Дефинише променљиву окружења ПУТАЊА за обичног корисника. Основна вредност је /usr/local/bin:/bin:/usr/bin.

ENV_ROOTPATH (ниска), ENV_SUPATH (ниска)
    Дефинише променљиве окружења ПУТАЊА за корисника администратора. ENV_SUPATH има предност. Основна вредност је /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.

ALWAYS_SET_PATH (логичка)
    Ако је постављено на yes и --login и --preserve-environment нису наведене runuser покреће ПУТАЊУ.

    Променљива окружења ПУТАЊА може бити другачија на системима где су /bin и /sbin спојене у /usr; на ову променљиву такође утиче --login опција линије наредби и ПАМ системска поставка (нпр., pam_env(8)).

ИЗЛАЗНО СТАЊЕ

su обично даје излазно стање наредбе коју извршава. Ако је наредба убијена сигналом, su резултира бројем сигнала плус 128.

Излазно стање које ствара сама su:

1
    Општа грешка пре извршавања захтеване наредбе

126
    Захтевана наредба се не може извршити

127
    Захтевана наредба није нађена

ДАТОТЕКЕ

/etc/pam.d/su
    основна датотека ПАМ подешавања

/etc/pam.d/su-l
    датотека ПАМ подешавања ако је --login наведено

/etc/default/su
    наредби специфична „logindef“ датотека подешавања

/etc/login.defs
    општа датотека „logindef“ подешавања

SECURITY NOTES

If su shares a terminal with the original session, it is potentially vulnerable to privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. There are two built-in ways to prevent this: Either you can use su with the -c option, which starts a new session via setsid(2) without a controlling terminal. Or, if your use case requires a controlling terminal, for example an interactive session, you can instruct su to use a pseudo terminal with the --pty or -P option.

Из безбедносних разлога, su увек бележи неуспеле покушаје пријављивања у btmp датотеку, али уопште не пише у lastlog датотеку. Ово решење се може користити за контролу su понашања PAM подешавањем. Ако желите да користите pam_lastlog(8) модул да испишете поруку упозорења о неуспелим покушајима пријављивања тада pam_lastlog(8) треба да се подеси да такође освежи lastlog датотеку. На пример са:

    session required pam_lastlog.so nowtmp

ИСТОРИЈАТ

Ова su наредба је проистекла из su „coreutils“-а, која је заснована на примени од стране Дејвида Мек Кензија. Издање „util-linux“-а је поново обрађено од стране Карела Зака.

ПОГЛЕДАЈТЕ ТАКОЂЕ

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

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите „https://github.com/util-linux/util-linux/issues[issue tracker]“.

ДОСТУПНОСТ

Наредба su је део „util-linux“ пакета који се може преузети са