Найти в Дзене

Суперпользователь и как правильно с ним работать

Разбираемся, когда использовать sudo, а когда su, чтобы работать с root-правами эффективно и безопасно Для администрирования в GNU/Linux системах используется учетная запись root – которая по-другому именуется Суперпользователь. Особенность данной учетной записи заключается в том, что у неё больше прав и возможностей относительно других. По соображениям безопасности у обычных пользователей гораздо меньше возможностей в системе – это сделано для того, чтобы они не смогли случайно привести её в состояние неработоспособности. Однако многие администраторы забывают, что учетной записью Суперпользователя нужно пользоваться не на постоянной основе, а только в случаях, когда это необходимо для администрирования системы. Для всего остального есть личная учетная запись и специальные инструменты для повышения привилегий. О том, как этими инструментами правильно пользоваться и поговорим в этой статье. Ну и первое, что может прийти нам на ум это инструменты su и sudo. Давайте разберёмся в чем же их

Разбираемся, когда использовать sudo, а когда su, чтобы работать с root-правами эффективно и безопасно

Для администрирования в GNU/Linux системах используется учетная запись root – которая по-другому именуется Суперпользователь. Особенность данной учетной записи заключается в том, что у неё больше прав и возможностей относительно других. По соображениям безопасности у обычных пользователей гораздо меньше возможностей в системе – это сделано для того, чтобы они не смогли случайно привести её в состояние неработоспособности. Однако многие администраторы забывают, что учетной записью Суперпользователя нужно пользоваться не на постоянной основе, а только в случаях, когда это необходимо для администрирования системы. Для всего остального есть личная учетная запись и специальные инструменты для повышения привилегий. О том, как этими инструментами правильно пользоваться и поговорим в этой статье.

Ну и первое, что может прийти нам на ум это инструменты su и sudo. Давайте разберёмся в чем же их отличия.

🔐 sudo - выполнить команду от имени другого пользователя

sudo - это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея - дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

Команда sudo предоставляет возможность пользователям выполнять команды от имени root. В большинстве случаев, грамотная настройка sudo делает работу от имени суперпользователя ненужной.

🗝️ Команда su используется для подмены идентификатора пользователя. Идентификатор нового пользователя может быть указан посредством аргумента имя_пользователя. По умолчанию это суперпользователь (UID=0).

Таким образом, если вы знаете логин и пароль учетной записи – вы можете переключаться на неё во время работы. После завершения работы из неё можно выйти при помощи команды «exit».

Вот и первое их отличие: «sudo» - позволяет выполнить одну команду с привилегиями root, а команда «su» - сменить пользователя на root, если другой пользователь не указан явно в аргументе команды.

Второе отличие: при использовании команды с «sudo» - запрашивается пароль текущего пользователя, из-под которого вы запускаете данную команду. В случае с командой «su» - нужно ввести пароль пользователя, за которого вы хотите войти. В случае использования данной команды без аргументов – понадобится пароль от root.

По умолчанию, при использовании команды «su», вызывается непосредственно оболочка пользователя, однако, при указании флага аргумента «-», su вызывает оболочку регистрации в системе. Это значит, что текущий рабочий каталог будет изменён в домашний каталог нового пользователя и первый аргумент оболочки будет иметь префикс -.

Может показаться, что команда «su» и команда «su - » работают одинаково, но на самом деле это не так!

Выполнив из-под пользователя ivanov команду «su», мы останемся в том же рабочем окружении, что и были (то есть получив права супер-администратора, всё равно нашим домашним каталогом останется /home/ivanov, а также все переменные рабочего окружения оболочки).

Следовательно, если какая-то программа или команда захочет что-то записать в домашнюю папку, то она сделает это в каталоге /home/ivanov, но владельцем файла установит уже пользователя root, что потом при работе с правами пользователя ivanov не позволит этот файл редактировать, удалить и т. д. Совсем плохо, если этим файлом окажется какой-то из файлов конфигурации.

Поэтому, запомните:

Используя команду su, обязательно выполняйте её с аргументом «–»:
su -
Данный вариант команды запускает оболочку, как если бы root действительно зашел в систему.

Попробуйте сравнить значения переменных при использовании команд su и su -.

Больше различий и нюансов в использовании команд su и sudo можно увидеть в таблице ниже:

-2

В завершение запомните несколько правил:

  1. Никогда не выполняйте из-под Суперпользователя пользовательскую работу – на это у вас должна быть личная учетная запись.
  2. При необходимости выполнить действия, требующие прав администратора – воспользуйтесь инструментами sudo или su. В случае использования утилиты su – не забывайте завершить сеанс после выполнения задач.
  3. Назначайте службам и пользователям минимально необходимые права.
  4. На этапе установки системы – по возможности блокируйте использование учетной записи root.

А если вы хотите больше узнать про администрирование в GNU/Linux — приходите к нам на курсы!

📌 Ну а чтобы эти правила всегда были под рукой - сохраните себе эту шпаргалку:

-3