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