Разница между командами 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. Выбор подходящей команды зависит от ваших задач и уровня доступа в системе. Важно понимать их различия, чтобы эффективно и безопасно выполнять административные задачи.