Jump to content

# su (Русский)

5 languages

- English
- Español
- Français
- 日本語
- 中文（简体）

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи 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

Categories:

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