Как добавить пользователя в группу sudoers в Ubuntu 26.04

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

Необходимые условия

  • VPS с Ubuntu 26.04
  • Доступ root по SSH или обычный системный пользователь с правами sudo

Условные обозначения

Что такое Sudo?

Sudo, сокращение от SuperUser Do, — это команда в операционных системах на базе Unix (Linux и macOS). Эта команда позволяет пользователям запускать команды с правами администратора (root). Это означает, что sudo предоставляет пользователям разрешение на выполнение задач, обычно доступных только пользователю root, таких как установка программного обеспечения, изменение системных настроек или управление пользователями.

Основная цель sudo — повышение безопасности системы. Вместо предоставления полного доступа к учетной записи root пользователям может быть предоставлена возможность запускать определенные команды с повышенными привилегиями без необходимости входа в систему непосредственно как root. Пользователи, уполномоченные использовать sudo, обычно являются членами группы sudo или аналогичной группы в дистрибутивах Linux.

Что такое root-доступ?

В Linux термин root относится к учетной записи системного администратора. Эта учетная запись имеет полный контроль над операционной системой, что позволяет ей изменять любой файл. Чтобы изменять файлы конфигурации системы, устанавливать новые приложения, создавать учетные записи пользователей или выполнять любые действия за пределами вашего домашнего каталога, вам нужен root-доступ.

Учетная запись root является самой мощной учетной записью пользователя в системе. Она имеет неограниченный доступ и может изменять что угодно — включая файлы, настройки, установленное программное обеспечение и системные конфигурации — а также может предоставлять или отзывать права доступа для любого пользователя или процесса. Обычные пользователи (не имеющие root-доступа) не обладают такими обширными административными привилегиями.

Пользователь root автоматически является членом группы root; однако принадлежность к этой группе сама по себе не предоставляет тех же возможностей суперпользователя. Членство в группе root предоставляет привилегии только в следующих случаях:

  • Конкретные файлы или каталоги принадлежат группе root и имеют установленные соответствующие групповые права (такие как чтение/запись/выполнение для группы), или
  • Настроены дополнительные механизмы (чаще всего sudo), позволяющие пользователям из группы root (или других групп, таких как wheel, sudo или admin) повышать свои привилегии.

Если вы хотите предоставить пользователю привилегии root, настоятельно рекомендуется вместо этого добавить его в группу wheel или sudo.

Итак, чтобы добавить пользователя с доступом sudo на машине с Ubuntu, выполните следующие шаги.

Шаг 1. Войдите на свой сервер

Прежде всего, нам нужно войти на Сервер с Ubuntu 26.04 через SSH:

ssh root@IP_Address -p Port_number

Замените root на имя пользователя, имеющего привилегии sudo. Кроме того, замените IP_Address и Port_Number на соответствующий IP-адрес вашего сервера и номер порта SSH. Далее убедимся, что мы находимся в Ubuntu 26.04. Вы можете проверить это с помощью следующей команды:

lsb_release -a

Вы должны получить следующий вывод:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu Resolute Raccoon 
Release:        26.04
Codename:       resolute

Затем выполните следующую команду, чтобы убедиться, что все установленные на сервере пакеты обновлены до последних доступных версий:

apt update

Вот и все, информация о системных пакетах теперь должна быть обновлена.

Шаг 2. Добавление нового пользователя

После входа на сервер под учетной записью root используйте команду adduser, чтобы добавить нового пользователя в систему:

adduser master

Обязательно замените master на имя пользователя, которого хотите добавить. Вам будет предложено создать и подтвердить пароль для пользователя.

Вам будет предложено ввести некоторую информацию о новом пользователе. Можно использовать информацию по умолчанию и оставить поля пустыми.

Changing the user information for master
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]

Шаг 3. Добавление пользователя в группу sudo

Пользователи, имеющие право использовать sudo, обычно входят в группу sudo. Чтобы предоставить обычному пользователю полный доступ к sudo (т. е. возможность запускать команды от имени root с помощью sudo), добавьте его в группу sudo с помощью usermod.

usermod -aG sudo master

Или мы также можем использовать команду gpasswd.

gpasswd --add master sudo

Помимо приведенных выше команд, вы можете использовать visudo для добавления пользователей в группу sudo. Просто выполните приведенную ниже команду.

visudo

Прокрутите вниз, затем добавьте следующую строку ниже

master ALL=(ALL) NOPASSWD:ALL

Сохраните файл, но перед этим убедитесь, что заменили master на существующего системного пользователя в вашей Ubuntu 26.04. Вы можете добавить тег NOPASSWD:, чтобы разрешить выполнение определенных команд (или всех команд) через sudo без запроса пароля пользователя. Это удобно для скриптов, автоматизации (например, заданий cron, плейбуков Ansible) или серверов без монитора, но значительно снижает Безопасность. Любой, кто получит доступ к этой учетной записи, сможет немедленно выполнять привилегированные команды без аутентификации.

Другой пример — разрешение пользователю запускать только определенные команды с помощью sudo. Например, чтобы разрешить только команды mkdir и rmdir, нужно использовать:

master ALL=(ALL) NOPASSWD:/bin/ls,/bin/mkdir

Вместо редактирования основного файла /etc/sudoers с помощью visudo более чистым, удобным для обслуживания и безопасным подходом является создание отдельного файла конфигурации в каталоге /etc/sudoers.d/.

Ubuntu (и большинство современных систем на базе Debian) автоматически включает все файлы в этом каталоге (при условии, что они соответствуют правилам именования и имеют правильные права доступа). Это позволяет сохранить ваш основной файл /etc/sudoers в неизменном виде и упрощает включение/отключение или удаление пользовательских правил без риска синтаксических ошибок в основном файле.

echo "master ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/master

Чтобы проверить новые права sudoer, вы можете запустить приведенную ниже команду от имени sudoer:

sudo -l

Вышеуказанная команда выведет следующее сообщение:

Matching Defaults entries for master on ubuntu26:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User master may run the following commands on ubuntu24:
    (ALL : ALL) ALL

Шаг 4. Проверка доступа с помощью sudo

Последним шагом при добавлении пользователя с правами sudo в Ubuntu является проверка работоспособности нового доступа. Для этого введите команду su, чтобы переключиться на учетную запись пользователя.

su - master

Затем убедитесь, что вы можете использовать sudo, добавив команду для запуска с привилегиями, например:

sudo top

Еще один пример: вы можете отобразить содержимое каталога /root, доступ к которому обычно имеет только пользователь root:

sudo ls -la /root

При первом использовании в этой сессии вам будет предложено ввести пароль для этой учетной записи пользователя. Введите пароль, чтобы продолжить.

Вывод:

[sudo] password for master:

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

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

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)