Scroll to navigation

SU(1) Корисничке наредбе 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 ради:

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

•покреће променљиве окружења ЛИЧНА, ШКОЉКА, КОРИСНИК, ПРИЈАВНО-ИМЕ, и ПУТАЊА

•прелази у циљни кориснички лични директоријум

•поставља „argv[0]“ шкољке на - да би шкољку учинио пријавном шкољком

-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“ пакета који се може преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.

2026-02-28 util-linux 2.42-rc1