Перейти к содержимому

Как настроить su linux

  • автор:

su (Русский)

Состояние перевода: На этой странице представлен перевод статьи su. Дата последней синхронизации: 21 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

  • Пользователи и группы
  • sudo (Русский)
  • Список приложений/Безопасность#Повышение привилегий

su (substitute user) — это основная утилита, которая используется для выполнения программ от имени друого пользователя в системе, по умолчанию root.

Поведение su можно настроить с помощью PAM.

Установка

su входит в состав пакета util-linux .

Использование

Чтобы выполнить вход в другого пользователя, передайте имя пользователя, которым вы хотите стать, в команду su:

# su пользователь 

Вам будет предложено ввести пароль пользователя, которым вы пытаетесь стать.

Если имя пользователя не указано, su по умолчанию будет root, и пароль, который вам будет предложено ввести, должен быть паролем root.

Полная документация доступна в su(1) .

Советы и рекомендации

Оболочка входа

По умолчанию su остаётся в текущем каталоге и сохраняет переменные окружения исходного пользователя (а не переключается на переменные нового пользователя).

Обратите внимание на следующие важные противоположные соображения:

  • Иногда системному администратору может быть полезно использовать учётную запись обычного пользователя, а не свою собственную. В частности, иногда наиболее эффективным способом решения проблемы пользователя является вход в учётную запись этого пользователя для воспроизведения или отладки проблемы.
  • Однако во многих ситуациях нежелательно и даже может быть опасно, чтобы пользователь root работал из учётной записи обычного пользователя и с переменными окружения этой учётной записи, а не из root. Случайно используя окружение обычного пользователя, root может установить программу или внести другие изменения в систему, которые поведут себя не так, как если бы они были сделаны в полном окружении root. Например, может быть установлена программа, которая даст обычному пользователю возможность случайно повредить систему или получить несанкционированный доступ к данным.

Таким образом, рекомендуется, чтобы администраторы и другие пользователи, которым разрешено использовать su (а предполагается, что таких пользователей очень мало, если вообще есть), приобрели привычку всегда запускать команду su с опцией -l / —login . Это даёт два эффекта:

  • Переходит из текущего каталога в домашний каталог нового пользователя (например, в каталог /root в случае пользователя root) путём входа от имени этого пользователя.
  • Изменяет переменные окружения на переменные окружения нового пользователя, как это прописано в настройках его оболочки. Например, считывается его ~/.bashrc и, возможно, другие dot-файлы оболочки bash. То есть, текущий каталог и окружение будут изменены на те, которые ожидались бы, если бы новый пользователь действительно вошёл в новый сеанс (а не просто взял на себя управление существующим сеансом).

Таким образом, администраторам обычно следует использовать su следующим образом:

$ su -l

Такой же результат получается при добавлении имени пользователя root:

$ su -l root

Аналогично, то же самое можно сделать для любого другого пользователя (например, для пользователя с именем archie):

# su -l archie

Можно прописать псевдоним в ~/.bashrc :

alias su="su -l"

su и wheel

По умолчанию BSD su позволяет стать root только пользователям из группы wheel . Это не является поведением по умолчанию в GNU su, но может быть имитировано с помощью PAM. Раскомментируйте соответствующую строку в /etc/pam.d/su и /etc/pam.d/su-l :

auth required pam_wheel.so use_uid

Retrieved from «https://wiki.archlinux.org/index.php?title=Su_(Русский)&oldid=729291»

  • Security (Русский)
  • Commands (Русский)

Команда Su в Linux (переключение пользователя)

Утилита su (сокращение от замены или переключения пользователя) позволяет запускать команды с привилегиями другого пользователя, по умолчанию пользователя root.

Использование su — самый простой способ переключиться на административную учетную запись в текущем сеансе входа в систему. Это особенно удобно, когда пользователю root не разрешено входить в систему через ssh или с помощью диспетчера отображения графического интерфейса.

В этом руководстве мы объясним, как использовать команду su .

Как использовать команду su

Общий синтаксис команды su следующий:

su [OPTIONS] [USER [ARGUMENT. ]] 

При вызове без каких-либо параметров по умолчанию su запускает интерактивную оболочку от имени пользователя root:

Вам будет предложено ввести пароль root, и в случае аутентификации пользователь, выполняющий команду, временно станет пользователем root.

Переменные среды сеанса ( SHELL ) и home ( HOME ) устанавливаются из замещающей записи пользователя /etc/passwd , и текущий каталог не изменяется.

Чтобы подтвердить изменение пользователя, используйте команду whoami :

whoami

Команда выведет имя пользователя, запустившего текущий сеанс оболочки:

root 

Наиболее часто используемый параметр при вызове su — это — ( -l , —login ). Это делает оболочку оболочкой входа в систему со средой, очень похожей на реальный вход в систему, и меняет текущий каталог :

Если вы хотите запустить другую оболочку вместо той, которая определена в файле passwd , используйте параметр -s , —shell . Например, чтобы переключиться на root и запустить оболочку zsh , вы должны ввести:

su -s /usr/bin/zsh

Чтобы сохранить всю среду ( HOME , SHELL , USER и LOGNAME ) вызывающего пользователя, вызовите команду с параметром -p , —preserve-environment .

su -p

Когда — опция используется, -p игнорируется.

Если вы хотите запустить команду от имени замещающего пользователя без запуска интерактивной оболочки, используйте параметр -c , —command . Например, чтобы вызвать команду ps от имени пользователя root, вы должны ввести:

su -c ps 

Чтобы переключиться на другую учетную запись пользователя, передайте имя пользователя в качестве аргумента su . Например, чтобы переключиться на пользователя tyrion вы должны ввести:

su tyrion

Судо против Су

В некоторых дистрибутивах Linux, таких как Ubuntu, учетная запись пользователя root по умолчанию отключена по соображениям безопасности. Это означает, что пароль для root не установлен, и вы не можете использовать su для переключения на root.

Один из вариантов изменения на root — это добавить к команде su sudo и ввести пароль текущего пользователя:

sudo su - 

Команда sudo позволяет запускать программы от имени другого пользователя, по умолчанию root.

Если пользователю предоставлена sudo Assessment, команда su вызывается от имени пользователя root. Запуск sudo su — и последующий ввод пароля пользователя имеет тот же эффект, что и запуск su — и ввод пароля root.

При использовании с параметром -i sudo запускает интерактивную оболочку входа в систему со средой пользователя root:

sudo -i 

sudo -i в основном аналогичен запуску su — .

Преимущество использования sudo перед su заключается в том, что пароль root не должен использоваться несколькими учетными записями административных пользователей.

С помощью sudo вы также можете разрешить пользователям запускать только определенные программы с привилегиями root.

Выводы

su — это утилита командной строки, которая позволяет вам временно стать другим пользователем и выполнять команды от имени замещающего пользователя.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Как использовать команду Su в Linux. Сравнение команда Su и Su — с примерами.

В этой статье рассказано, что такое команда su (замена пользователя) в Unix/Linux и в чем разница между командами su и su —. Linux — это многопользовательское ядро операционной системы, это означает, что несколько пользователей могут одновременно входить в систему Linux.

Вы можете переключаться между разными пользователями в командной строке с помощью команды su. Команда su означает «заменить пользователя». Данная команда изменяет учетные данные пользователя на пользователя root.

Su команда в Linux, сравнение команд su и su - с примерами.

Что делает команда su

Команда su, как показано ниже, изменит учетные данные пользователя на учетные данные другого пользователя. Давайте посмотрим это на примере:

[raghu@redhat-server ~]$ su jack
Password:
[jack@redhat-server raghu]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Команда id выводит информацию о текущем пользователе. В приведенных выше выходных данных вы можете увидеть измененного пользователя. Если команда su не имеет аргументов, то по умолчанию она изменяется на пользователя root. Справочные информация Ubuntu объясняет это более подробно.

[jack@redhat-server raghu]$ su
Password:
[root@redhat-server raghu]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Имитация входа с помощью команды su —

С помощью команды «su-login» или «su-l» или просто «su -« вы можете переключать пользователя, как если бы это был вход с терминала.

[raghu@redhat-server ~]$ su — jack
Password:
[jack@redhat-server ~]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Различие между su и su-

Разница между » su » и «su —» заключается в том, что переменная PATH, не изменяет значения с помощью команды su. Некоторые команды могут не выполняться, если PATH задан неправильно. Например, рассмотрим следующий сценарий:

[jack@redhat-server ~]$ su root
Password:
[root@redhat-server jack]# fdisk -l
bash: fdisk: command not found
[root@redhat-server jack]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin

Вы можете видеть, что каталоги sbin не включены в PATH пользователя root. Таким образом, он не выполняет команду fdisk. Теперь мы попытаемся войти в систему с помощью команды su —:

[jack@redhat-server ~]$ su —
Password:
[root@redhat-server ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
[root@redhat-server ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Еще одно различие между этими двумя командами — сценарии входа в систему. Во-первых, давайте посмотрим на сценарии входа в систему:

Возможно вам будет интересно: Установка и запуск Ubuntu с помощью Live-CD

Когда пользователь входит в систему, выполняются следующие 4 файла, если учетные данные пользователя являются законными:

Когда вы входите в систему с помощью команды » su —«, все эти сценарии выполняются. А с командой su выполняются только сценарии bashrc. Т. е. выполняются сценарии /etc/bashrc и ~./bashrc.

Команда su — выдаёт Authentication failure в Ubuntu

В ubuntu при запуске команды su может произойти сбой аутентификации. Вы получаете эту ошибку, потому что учетная запись root в ubuntu по умолчанию отключена.

user@host:~$ su
Password:
su: Authentication failure

Вместо того, чтобы использовать su используйте sudo -i или sudo . Либо поставьте пароль на учетную запись root. Так как она по умолчанию без пароля будет заблокированной.

Заключение

В этой статье мы показали разницу между командами “su” и “su -” в Linux. Надеюсь, вам понравилась наша статья и она вам помогла.

Инструкция по команде su

Команда su используется для запуска команд от имени другого пользователя, например, для запуска утилит с повышенными привилегиями от имени root.

Чтобы выполнить КОМАНДУ с правами root используйте конструкцию:

su -c КОМАНДА
su -c whoami

Чтобы открыть оболочку для пользователя root с инициализацией его переменных среды (например, $HOME):

Чтобы выполнить команду ‘Get-Help Get-Alias -Full’ с правами root в оболочке /usr/bin/pwsh-preview:

su -c 'Get-Help Get-Alias -Full' -s /usr/bin/pwsh-preview

Для чего нужна команда su

su позволяет запускать команды с замещающим идентификатором пользователя и группы.

При вызове без указания пользователя su по умолчанию запускает интерактивную оболочку от имени пользователя root. Когда указан пользователь, могут быть предоставлены дополнительные аргументы, и в этом случае они передаются оболочке.

Для обратной совместимости su по умолчанию не изменяет текущий каталог и устанавливает только переменные среды $HOME и $SHELL (плюс $USER и $LOGNAME, если целевой пользователь не является пользователем root). Рекомендуется всегда использовать опцию «—login» (вместо её псевдонима «»), чтобы избежать побочных эффектов, вызванных смешиванием сред.

su в основном предназначен для непривилегированных пользователей, рекомендуемое решение для привилегированных пользователей (например, сценарии, выполняемые пользователем root) — использовать команду runuser без идентификатора пользователя, которая не требует аутентификации и предоставляет отдельную конфигурацию PAM. Если сеанс PAM вообще не требуется, рекомендуется использовать команду setpriv.

Обратите внимание, что su во всех случаях использует PAM (pam_getenvlist) для окончательной модификации среды. Параметры командной строки, такие как —login и —preserve-environment, влияют на среду до того, как она будет изменена PAM.

Что использовать sudo или su?

У программы su похожее назначение: запустить команду с подстановкой ID другого пользователя и группы. То есть одинакового результата можно добиться используя как sudo, так и su.

Различия между этими программами вы найдёте в разделе «Что использовать sudo или su?».

Смотрите также:

  • Что такое sudo
  • Как пользоваться sudo

Как использовать команду su

Синтаксис команды следующий:

su [ОПЦИИ] [-] [ПОЛЬЗОВАТЕЛИ [АРГУМЕНТ. ]]

Опции команды su:

-c, —command=КОМАНДА

Передаёт команду оболочке с параметром -c.

-f, —fast

Передаёт значение -f оболочке, что может оказаться полезным, а может и не оказаться полезным, в зависимости от оболочки.

-g, —group=ГРУППА

Указывает основную группу. Эта опция доступна только пользователю root.

-G, —supp-group=ГРУППА

Укажите дополнительную группу. Эта опция доступна только пользователю root. Первая указанная дополнительная группа также используется как основная группа, если не указан параметр —group.

-, -l, —login

Запуск оболочки как оболочки с входом в систему со средой, похожей на реальный вход в систему. Эта опция делает следующее:

  • • очищает все переменные среды, кроме $TERM и переменных, указанных в —whitelist-environment
  • • инициализирует переменные среды $HOME, $SHELL, $USER, $LOGNAME и $PATH
  • • изменяет домашнюю папку на папку целевого пользователя
  • • устанавливает argv[0] оболочки на «», чтобы сделать оболочку оболочкой с входом в систему

-m, -p, —preserve-environment

Сохраните всю среду, т.е. не устанавливайте $HOME, $SHELL, $USER или $LOGNAME. Этот параметр игнорируется, если указан параметр —login.

-P, —pty

Создайте псевдотерминал для сеанса. Независимый терминал обеспечивает лучшую безопасность, поскольку пользователь не использует терминал совместно с исходным сеансом. Это можно использовать, чтобы избежать внедрения терминала TIOCSTI ioctl и других атак на безопасность дескрипторов файлов терминала. Весь сеанс также можно переместить в фоновый режим (например, «su —pty — username -c application &»). Если псевдотерминал включён, su работает как прокси-сервер между сеансами (копирует stdin и stdout).

Эта функция в основном предназначена для интерактивных сеансов. Если стандартный ввод — это не терминал, а, например, канал (например, echo «date» | su —pty), то флаг ECHO для псевдотерминала отключён, чтобы избежать беспорядочного вывода.

-s, —shell=ОБОЛОЧКА

Запускает указанную оболочку вместо оболочки по умолчанию. Оболочка для запуска выбирается в соответствии со следующими правилами в следующем порядке:

  • оболочка, указанная с помощью —shell
  • оболочка, указанная в переменной окружения $SHELL, если используется опция —preserve-environment
  • оболочка, указанная в записи passwd целевого пользователя
  • /bin/sh

Список доступных в операционной системе оболочек можно вывести командой:

chsh -l

Смотрите также:

  • Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh
  • Как узнать, какая оболочка используется в Linux

Если у целевого пользователя ограниченная оболочка (то есть не указана в /etc/shells), параметр —shell и переменные среды SHELL игнорируются, если вызывающий пользователь не является пользователем root.

—session-command=КОМАНДА

То же, что и -c, но не создаёт новый сеанс.

-w, —whitelist-environment=СПИСОК

Не сбрасывать переменные среды, указанные в списке, разделённом запятыми, при очистке среды для —login. Белый список игнорируется для переменных среды $HOME, $SHELL, $USER, $LOGNAME и $PATH.

-V, —version

Отобразите информацию о версии и выйдите.

-h, —help

Показать текст справки и выйти.

Типичными примерами использования su является выполнение КОМАНДЫ от имени root:

su -c КОМАНДА

Также su может использоваться для открытия интерактивной оболочки с правами root:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *