Введение
Команды sudo
и su
относятся к группе команд, с
которыми сталкивается каждый пользователь Linux. Поскольку они похожи по синтаксису и имеют перекрывающиеся
функции, многие новые пользователи не знают, когда использовать одно вместо другого.
В этом руководстве вы узнаете все о различиях между su
и sudo
.
sudo и su
И su
, и sudo
повышают привилегии, назначенные
текущему пользователю.
Основное различие между ними заключается в том, что для su
требуется пароль целевой
учетной записи, а для sudo
требует пароль текущего пользователя. Поэтому намного
безопаснее использовать sudo
, так как он не включает обмен конфиденциальной
информацией.
Кроме того, рекомендуется использовать sudo
при выполнении задач, требующих
привилегий root. При этом текущему пользователю предоставляются привилегии только для указанной команды. С
другой стороны, su
полностью переключается на пользователя root, подвергая всю
систему возможному случайному изменению.
Как использовать команду su
Команда su
означает заменить пользователя и в основном используется для
переключения с одного пользователя на другого. Он делает это, запуская оболочку входа в текущий каталог и среду
(su
) или полностью изменяя настройки целевого пользователя (su
-
).
Основной синтаксис:
su [user_name]
или
su - [user_name]
Если команда используется без аргумента, она переключается на учетную запись суперпользователя (root).
Как работает команда su?
Чтобы вызвать оболочку другого пользователя в рабочем каталоге/среде пользователя, используйте
команду su
(без дефиса).
Например, чтобы работать от имени пользователя infosharing, выполните:
su infosharing
Затем укажите пароль для infosharing и нажмите Enter.
Оболочка должна измениться, показывая, что теперь у вас есть доступ оператора к указанной учетной записи. Однако пользовательская среда остается такой же.
Как работает команда su – ?
Чтобы перейти к другому пользователю и переключиться на эту целевую пользовательскую среду, используйте команду
su -
.
Поэтому, чтобы переключиться на пользователя infosharing и перейти к его оболочке входа, введите команду:
su - infosharing
Введите пароль для учетной записи infosharing и нажмите Ввод для подтверждения. Результат должен выглядеть примерно так, как показано на следующем изображении:
Примечание. Дополнительные атрибуты, позволяющие перейти к другому пользователю и его
интерфейсу входа, включают: su - l
(или
>--логин
) [имя пользователя]
.
Как использовать команду sudo
sudo
используется в качестве префикса для команд Linux, что позволяет вошедшему в
систему пользователю выполнять команды, требующие привилегий root. В отличие от su
,
sudo
в Linux требует ввода пароля для пользователя, выполняющего
команду.
Для выполнения всех административных и исполняемых задач требуются максимальные права доступа (имеющиеся у root).
В таких случаях рекомендуется использовать sudo
.
Основной синтаксис:
sudo [команда]
Перед выполнением команды система запрашивает пароль текущего пользователя.
Помните, что параметр sudo
может использоваться только пользователями, которые
входят в группу sudoers.
Добавление пользователя в группу Sudoers
Чтобы пользователь мог выполнить команду, для которой требуется префикс sudo
, он
должен входить в группу sudoers.
Чтобы добавить пользователя в группу sudoers, выполните следующую команду (от имени root или учетной записи, у которой уже есть права sudo):
usermod -aG sudo [user_name]
Например, чтобы добавить учетную запись infosharing, введите:
sudo usermod -aG sudo infosharing
Чтобы просмотреть список учетных записей, принадлежащих группе sudoers, выполните:
группа sudo getent sudo
Вывод должен отображать учетную запись, добавленную на предыдущем шаге:
Примечание. Подробное руководство см. на странице Как добавить пользователя в группу Sudoers в Ubuntu или Как добавить пользователя в группу Sudoers в CentOS.
Как sudo и su работают в разных дистрибутивах Linux
su
— более старая, но более полнофункциональная команда, включенная во все
дистрибутивы Linux. Это традиционный способ переключения на учетную запись root.
Linux не рекомендует работать с правами root, поскольку это может привести к нежелательным общесистемным
изменениям, и предлагает вместо этого использовать sudo
. По этой причине все
выпуски на основе Ubuntu только для sudo, то есть учетная запись root не
активна по умолчанию.
Во время установки ОС Ubuntu yВы создаете пользователя, автоматически помечаемого как часть группы sudoers. Однако нет настройки учетной записи root. Чтобы включить пользователя root, вам необходимо активировать его вручную.
С другой стороны, другие дистрибутивы Linux, такие как Fedora, при установке создают учетную запись root и пользователя.
Включение корневой учетной записи
Если вы используете дистрибутив на основе Ubuntu и пытаетесь переключиться на пользователя root, вывод информирует вас о ошибке аутентификации.
Чтобы активировать пользователя root, запустите команда
passwd:
sudo passwd root
Далее в выходных данных предлагается установить пароль для пользователя root. Введите и повторите безопасный пароль, затем нажмите Enter. Система должна уведомить вас об успешном обновлении пароля.
Убедитесь, что пользователь root активен, переключив на него его оболочку входа с помощью su
-
.
Дополнительные функции
Хотя sudo
в основном используется для выполнения команд с привилегиями
суперпользователя, его также можно использовать для изменения пользователя root. Переключитесь на пользователя
root и получите корневую среду с помощью:
sudo -i
Введите пароль текущего пользователя. Теперь вы должны быть в корневой оболочке.
su
также может работать как sudo
и выполнять одну команду от имени пользователя root:
su -c [команда]
Заключение
Прочитав эту статью, вы должны понять разницу между командами sudo
и su
.
Не забывайте использовать sudo
всякий раз, когда это возможно, чтобы предотвратить
потенциальные проблемы безопасности и общесистемные проблемы.