Перейти к содержанию

13. Команда su и переключение пользователей в Linux

Введение

В Linux безопасность основана на разделении пользователей и их прав. В отличие от Windows, где многие программы часто требуют прав администратора, в Linux каждый пользователь работает строго в своём контексте.

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

Команда su используется реже, чем sudo, но остаётся важной частью понимания безопасности в Linux.


Что такое su

su (от substitute user или switch user) — это одна из базовых команд Unix/Linux, появившаяся ещё в самых ранних версиях ОС. Её ключевая задача — позволить переключиться в другого пользователя, полностью «примерив» его учетную запись.

Основная идея su

Команда предназначена для ситуаций, когда требуется работать от имени другого пользователя, обычно — администратора (root). При этом:

  • su не выполняет одну команду, а открывает целую сессию оболочки;
  • все действия внутри этой сессии выполняются от имени выбранного пользователя;
  • требуется пароль того пользователя, на которого осуществляется переход.

Как su работает «под капотом»

Когда запускается команда su, ОС выполняет несколько шагов:

  1. Проверяет, какой пользователь указан (если не указан — предполагается root).
  2. Запрашивает его пароль.
  3. Создаёт новую shell-сессию с UID и GID выбранного пользователя.
  4. Меняет переменные окружения (если указан флаг ).
  5. Передаёт управление пользователю.

То есть su — это полноценный «вход в систему» внутри уже работающей сессии.

Примеры команд su

Перейти в root:

su

или

su root

Перейти к пользователю student:

su student

Перейти с загрузкой профиля пользователя (аналог «полноценного входа»):

su - student

Чем отличается простой su от su -

Вариант Что делает
su Меняет пользователя, но оставляет окружение прежним (переменные PATH, locale и т.д.)
su - Полностью загружает окружение нового пользователя: его PATH, его конфигурацию, его домашний каталог

Использование su - считается корректным и более безопасным.

Когда действительно используют su

  • для восстановления системы, когда sudo недоступен;
  • когда известен пароль root и требуется длительная работа;
  • в минимальных системах без sudo (busybox, старые сервера);
  • в ситуациях, требующих полного управления окружением.

Отличие su от sudo

su sudo
Требует пароль того пользователя, на которого выполняется переход Требует пароль текущего пользователя
Даёт полную shell-сессию Выполняет одну команду с повышенными правами
Используется для долгой работы от имени root Используется для безопасного выполнения отдельных команд
Не ведёт детального логирования Логируется каждая команда

Главное отличие:

  • sudo — безопасный способ выполнить одну команду.
  • su — опасный способ войти в полноценную root-сессию.

Опасности использования su

Работа через su от имени root считается небезопасной:

  • легко случайно удалить важные системные файлы;
  • любые вредоносные команды выполнятся с полными правами;
  • большая часть действий не логируется;
  • пользователь «забывает», что он root, и ошибается.

Использование su обычно ограничивается администраторами или аварийными ситуациями.


Возврат назад

Для выхода из режима другого пользователя используется команда:

exit

или сочетание клавиш:

Ctrl + D

После этого вы возвращаетесь к своему пользователю.


Когда su действительно нужен

Использование su оправдано в редких ситуациях:

  • восстановление системы через терминал или rescue-режим;
  • работа в минимальной системе без sudo (старые дистрибутивы);
  • изменения файлов, доступных только root.

В большинстве случаев лучше использовать sudo вместо su.


su и безопасность

Важно понимать последствия:

  • Пользователь с доступом к root через su получает полный контроль над системой.
  • Все его действия трудно отследить.
  • Если пароль root украден — система полностью скомпрометирована.

Поэтому рекомендуется:

  • отключить или не использовать root-логин;
  • работать только через sudo;
  • хранить пароль root отдельно и выдавать минимуму людей.

Итоги

  • su позволяет войти от имени другого пользователя, включая root.
  • Использовать su нужно крайне осторожно: это высокий уровень привилегий.
  • sudo безопаснее, так как ограничивает команды и журналирует действия.
  • Знание su важно для специалистов по ИБ, поскольку оно касается контроля доступа и управления рисками.