Чем отличаются команды su, su — и sudo su и когда применяются
Команды su
, su -
и sudo su -
используются для смены пользователя в Unix-подобных операционных системах (например, Linux). Хотя их функциональность похожа, они имеют различия в поведении и области применения. Рассмотрим их подробно.
1. Команда su
su
(substitute user) — это команда, которая используется для смены пользователя. Если не указать имя пользователя, то по умолчанию предполагается смена на пользователя root
(суперпользователя).
Пример:
su
Эта команда попросит ввести пароль root
. После успешной аутентификации вы перейдёте в оболочку пользователя root
, но при этом сохранятся текущие окружения (переменные окружения, такие как $PATH
, останутся от вашего текущего пользователя).
Использование:
- Когда это полезно: если вам нужно стать пользователем
root
, но при этом сохранить переменные окружения текущего пользователя. Это удобно для выполнения отдельных команд, не нарушая окружение.
2. Команда su -
su -
— это вариант команды su
, но с дефисом, который указывает системе, что необходимо произвести вход как в новую сессию, т.е. подменить не только пользователя, но и выполнить инициализацию новой среды окружения.
Пример:
su -
После ввода пароля root
, система откроет новую сессию с полным окружением пользователя root
(переменные окружения, такие как $PATH
, будут взяты от root).
Основные отличия:
- Вы получите окружение так, как если бы вы только что вошли в систему под пользователем
root
. - Это полезно для того, чтобы использовать окружение целевого пользователя полностью, включая его пути и конфигурации.
Использование:
- Когда это полезно: если нужно полностью переключиться на пользователя
root
(или любого другого пользователя) и воспользоваться его средой окружения для работы. Например, когда вы хотите запустить программу, которая зависит от переменных окружения пользователяroot
.
3. Команда sudo su -
sudo su -
— это сочетание команд sudo
и su -
. Команда sudo
позволяет пользователю выполнять команды с правами администратора, не вводя пароль root
(при этом система запросит пароль текущего пользователя). Используя sudo
, вы получаете возможность выполнять su -
с административными правами, что позволяет вам стать root
без прямого ввода пароля root
.
Пример:
sudo su -
Эта команда позволит вам стать пользователем root
и полностью сменить окружение на окружение root
, при этом используя права администратора через команду sudo
.
Использование:
- Когда это полезно: если текущий пользователь имеет права администратора, но вы не хотите вводить пароль
root
(например, если доступ к пользователюroot
заблокирован или недоступен). Это удобно для безопасного администрирования системы.
Основные различия и примеры использования
Команда su
Пример:
su
Вводите пароль root
, после чего становитесь root
, но сохраняете переменные окружения своего текущего пользователя. Полезно, когда нужно выполнить команду с правами root
, не меняя окружения (например, если вам нужны специфические настройки пользователя, а не root
).
Команда su —
Пример:
su -
Команда sudo su —
Пример:
sudo su -
Вводите пароль текущего пользователя (который должен иметь права в sudoers
), а затем переходите в полноценную сессию пользователя root
. Это полезно в тех случаях, когда у вас нет прямого доступа к паролю root
, но нужно получить полный доступ как администратор.
Когда использовать каждую команду?
su
— для выполнения задач с правамиroot
, сохраняя текущее окружение. Например, если вам нужно выполнить команды отroot
, но в контексте окружения обычного пользователя.su -
— для полной смены пользователя и окружения. Используется, когда вам нужно полноценно войти как пользовательroot
с его путями и настройками.sudo su -
— для безопасной работы с правами суперпользователя через командуsudo
, не зная или не вводя парольroot
.