Разница между командами su, su — и sudo su в Практические задания по GNU/Linux

Введение
В Linux команды su, su - и sudo su часто используются для получения повышенных привилегий. Эти команды важны для системного администрирования, но каждая из них имеет свои особенности и сценарии использования. В этой статье мы подробно рассмотрим их различия и практическое применение.
Команда su
su (от «substitute user») позволяет переключаться на другого пользователя без выхода из текущей сессии.
Синтаксис
su [имя_пользователя]
Если имя пользователя не указано, команда по умолчанию переключается на пользователя root.
Особенности
- После ввода команды требуется ввести пароль целевого пользователя.
- Переменные окружения текущего пользователя сохраняются.
Пример
su user2
Переключает с текущего пользователя на user2, сохраняя текущий рабочий каталог и переменные среды.
Плюсы и минусы
- Плюсы: Удобно, если нужно временно переключиться на другого пользователя.
- Минусы: Может быть небезопасным, если пароль
rootдоступен многим пользователям.
Команда su —
su — выполняет ту же функцию, что и su, но при этом переключается на полную пользовательскую среду целевого пользователя (как при входе в систему).
Синтаксис
su - [имя_пользователя]
Особенности
- Загружает профиль пользователя из файлов
.bash_profile,.bashrc,.profile. - Меняет текущий рабочий каталог на домашний каталог целевого пользователя.
- Обновляет переменные окружения, такие как
$PATH,$HOME.
Пример
su -
Переключает на пользователя root и его среду.
Плюсы и минусы
- Плюсы: Полное переключение на целевую среду пользователя. Полезно для выполнения команд с использованием специфических переменных окружения.
- Минусы: Требует больше времени на настройку окружения.
Команда sudo su
sudo su сочетает возможности sudo и su. Эта команда используется для временного переключения на пользователя root от имени текущего пользователя без ввода пароля root.
Синтаксис
sudo su
Особенности
- Работает только если текущий пользователь имеет права на выполнение команд через
sudo. - Использует пароль текущего пользователя, а не
root.
Пример
sudo su
Переключает текущего пользователя на root.
Плюсы и минусы
- Плюсы: Безопаснее, чем использование
su, так как не требует знания пароляroot. - Минусы: Может быть не настроено на системах с ограниченным доступом.
Таблица сравнения
| Команда | Переключение на пользователя | Загрузка окружения | Требуемый пароль | Примечание |
|---|---|---|---|---|
su | Да | Нет | Пароль целевого | Сохраняет окружение текущего пользователя. |
su - | Да | Да | Пароль целевого | Полное переключение на целевую среду. |
sudo su | Да (обычно root) | Нет | Пароль текущего | Требует настроенного доступа через sudo. |
Рекомендации по использованию
- Используйте
su, если необходимо временно переключиться на другого пользователя без изменения окружения. - Применяйте
su -, когда требуется полная среда целевого пользователя. - Предпочитайте
sudo su, если не хотите делиться паролемrootи у вас есть праваsudo.
Заключение
Команды su, su - и sudo su предоставляют мощные инструменты для управления доступом в Linux. Выбор подходящей команды зависит от ваших задач и уровня доступа в системе. Важно понимать их различия, чтобы эффективно и безопасно выполнять административные задачи.


