Ubuntu создает пользователя с правами sudo

Обновлено: 22.11.2024

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

А как насчет новых пользователей, которых вы создали после установки Ubuntu? Что делать, если новому пользователю также нужны разрешения sudo?

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

Метод с графическим интерфейсом будет работать для настольной версии Ubuntu, а метод командной строки будет работать как для настольной, так и для серверной версии.

Примечание: это руководство не посвящено созданию пользователей в Ubuntu. Я предполагаю, что все пользователи, для которых вы это делаете, уже созданы. Наконец, чтобы предоставить доступ к sudo другому пользователю, вы сами должны иметь доступ к sudo.

Предоставление разрешений sudo из командной строки

Предоставление пользователю разрешения sudo из командной строки — это всего лишь одна команда, если вы знаете имя пользователя:

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

Давайте рассмотрим, что только что сделала эта команда:

  • usermod: команда usermod используется для изменения существующего пользователя в Linux.
  • -aG: опция a означает добавление (или добавление), G для групп. Таким образом, указанная группа добавляется к указанному пользователю, не затрагивая существующие группы пользователя. Если вы исключите параметр a, пользователь будет удален из всех своих групп, кроме sudo (вы этого не хотите).
  • sudo: второй sudo в команде представляет группу sudo.
  • имя пользователя: это имя пользователя, которого вы хотите добавить в группу sudo.

Если вы не знаете точное имя пользователя, вы можете вывести список пользователей в вашей системе с помощью команды compgen -u. Вы найдете имя пользователя в конце вывода команды.

Как проверить, есть ли у пользователя доступ к sudo

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

Кроме того, вы можете войти в систему как другой пользователь, которому вы только что предоставили доступ к sudo, и запустить команду с sudo. Например:

Если все настроено правильно, появится сообщение Я root! . Если вы получили сообщение об ошибке о том, что пользователя нет в файле sudoers, попробуйте выполнить инструкции еще раз или вы можете использовать графический метод ниже.

Предоставление доступа sudo пользователю Ubuntu Desktop

Предоставление пользователю разрешений sudo в Ubuntu Desktop – это простой двухэтапный процесс:

Шаг 1. Откройте приложение "Настройки", перейдите в раздел "Пользователи" и нажмите "Разблокировать". Введите свой пароль, когда будет предложено сделать это.

Шаг 2. Включите переключатель администратора.

И все! Если вы хотите проверить, сработало ли это, войдите в систему как пользователь, которому вы предоставили права администратора, и попробуйте выполнить ту же команду, что и раньше. Ищите тот же вывод, что и упоминалось ранее.

Подведение итогов

При этом вы предоставили пользователю права sudo! Команды должны работать в основном, если не полностью, в других дистрибутивах, таких как Debian, Fedora или Arch Linux.

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

Команда sudo предоставляет механизм предоставления прав администратора — обычно доступных только пользователю root — обычным пользователям. В этом руководстве показано, как создать нового пользователя с доступом к sudo в Ubuntu 18.04 без необходимости изменять файл /etc/sudoers на вашем сервере. Если вы хотите настроить sudo для существующего пользователя, перейдите к шагу 3.

Шаг 1 — Вход на ваш сервер

Подключение к вашему серверу по SSH в качестве пользователя root:

Шаг 2 — Добавление нового пользователя в систему

Используйте команду adduser, чтобы добавить нового пользователя в вашу систему:

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

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

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

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

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

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

Чтобы проверить, работают ли новые разрешения sudo, сначала используйте команду su, чтобы переключиться на новую учетную запись пользователя:

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

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

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

Примечание: это не запрос пароля root! Введите пароль пользователя с поддержкой sudo, а не пароль root.

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

Заключение

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Возможно, вы слышали о концепции «В Linux все является файлом». Это звучит несколько странно, поскольку система Linux состоит из различных объектов, а не только файлов. У нас есть каталоги, символические ссылки, процессы, каналы и сокеты, и это лишь некоторые из них. Такое упрощение просто дает общее представление об архитектуре Linux. Это означает, что в системе Linux каждый отдельный объект считается файлом. Эти объекты представлены файловым дескриптором, который является уникальным идентификатором файла или других ресурсов, таких как каталоги, сетевые сокеты или процессы — отсюда и концепция «все является файлом».

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

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

Что такое пользователь sudo?

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

Sudo — это программа, которая предоставляет обычным пользователям разрешения на выполнение команд с привилегиями root или от имени другого пользователя. Таким образом, пользователь sudo — это обычный пользователь Linux с повышенными привилегиями для запуска команд в качестве пользователя root или другого обычного пользователя, по умолчанию — пользователя root. Кроме того, вы можете настроить sudo, чтобы ограничить пользователя sudo несколькими командами или разрешить ему выполнять все команды от имени пользователя root. Мы подробно рассмотрим эти сценарии далее в этом руководстве.

Сначала мы покажем вам, как создать пользователя sudo в Ubuntu 20.04.

Как создать пользователя sudo

Чтобы создать пользователя sudo в Ubuntu 20.04, выполните описанные шаги.

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

Сначала войдите на свой облачный сервер как пользователь root, используя показанный синтаксис.

Укажите пароль root при появлении запроса и нажмите ENTER, чтобы получить доступ к серверу. Если вы используете Putty, просто введите IP-адрес удаленного сервера и нажмите кнопку «Открыть» или нажмите клавишу ВВОД.

Шаг 2. Создайте нового пользователя

После входа в систему создайте нового обычного пользователя с помощью команды adduser. Здесь jumpcloud — наш новый пользователь.

Эта команда выполняет несколько функций. Во-первых, он создает нового пользователя и основную группу с именем jumpcloud, а затем добавляет пользователя в группу. Далее создается домашний каталог для пользователя и копируются в него конфигурационные файлы. После этого вам будет предложено ввести пароль нового пользователя. Обязательно укажите надежный пароль и подтвердите его.

После установки пароля пользователя от вас потребуется дополнительная информация. Заполните там, где это необходимо, или оставьте поле пустым, нажав ENTER, если информация неприменима.

Чтобы убедиться, что новый добавленный пользователь создан, просмотрите файл /etc/passwd с помощью команды cat. Это предоставляет такую ​​информацию, как UID (идентификатор пользователя), GID (идентификатор группы) и путь к домашнему каталогу.

Аналогичным образом вы можете получить информацию о пользователе с помощью команды id.

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

Группа sudo – это группа суперпользователей, имеющих привилегированный доступ к корневым командам. Имея это в виду, добавьте нового пользователя в группу sudo с помощью команды usermod следующим образом.

Чтобы убедиться, что пользователь добавлен в группу sudo, используйте команду id.

Из вывода видно, что пользователь теперь принадлежит к двум группам: jumpcloud и sudo . Кроме того, вы также можете запустить команду groups, чтобы отобразить только те группы, к которым принадлежит пользователь.

Отлично! Новый пользователь теперь является пользователем sudo и имеет неограниченный доступ к привилегиям root.

Шаг 4. Проверка sudo

Поскольку пользователь sudo уже создан, мы собираемся продолжить и протестировать пользователя. Итак, переключитесь на пользователя sudo с помощью команды su.

Команда помещает вас в путь к домашнему каталогу пользователя. Синтаксис использования sudo указан ниже

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

$ sudo apt update

При появлении запроса введите пароль пользователя и нажмите ENTER. Команда будет выполнена успешно — подтверждение того, что пользователь был успешно добавлен в группу sudo и теперь может выполнять системные задачи с повышенными правами.

Знакомство с файлом sudoers

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

Файл sudoers /etc/sudoers — это файл, в котором указано, какие пользователи могут запускать какие команды в системе. Он содержит набор правил, определяющих, какие пользователи или группы могут выполнять задачи с повышенными правами. Чтобы предоставить или ограничить привилегии root для пользователей, вам необходимо отредактировать этот файл.

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

По умолчанию файл содержит 6 строк без комментариев. Давайте перейдем к строке привилегий пользователя, которая является четвертой строкой.

корень ВСЕ=(ВСЕ:ВСЕ) ВСЕ

  • Первый параметр указывает на имя пользователя — в данном случае пользователь root.
  • Первая буква «ВСЕ» означает, что правило применимо ко всем хостам.
  • Второе значение «ВСЕ» означает, что пользователь root может выполнять все команды от имени всех пользователей.
  • Третье значение «ВСЕ» показывает, что пользователь root может выполнять все команды от имени всех групп пользователей.
  • Наконец, последнее слово «ВСЕ» означает, что правила применимы ко всем командам.

Следующие две строки определяют правила sudo для групп. «%» определяет группу. Здесь у нас есть две определенные группы: группы admin и sudo.

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

%admin ВСЕ=(ВСЕ) ВСЕ

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

%sudo ВСЕ=(ВСЕ:ВСЕ) ВСЕ

Редактировать файл sudoers напрямую не рекомендуется. Вместо этого предпочтительно размещать связанные правила sudo в каталоге /etc/sudoers.d. Это позволяет системным администраторам легко отслеживать, какие правила применяются к тем или иным учетным записям пользователей. Файлы, помещенные в этот каталог, подчиняются тем же правилам, что и файл sudoers.

Как запретить пользователям sudo выполнять определенные команды

Как мы указывали ранее, вам может потребоваться запретить пользователям sudo выполнять определенные системные команды. Для этого вам нужно создать правило sudo в каталоге /etc/sudoers.d.

Для демонстрации мы создадим правило jumpcloud, которое запрещает пользователю sudo обновлять пакеты до последних версий.

Далее скопируйте и вставьте показанную строку и сохраните изменения.

jumpcloud ALL=(ALL) !/usr/bin/apt upgrade

Правило указывает, что пользователь jumpcloud может выполнять все команды как пользователь root, за исключением команды apt upgrade. Обратите внимание, что вам необходимо указать полный путь к команде с префиксом восклицательного знака.

Чтобы найти полный путь к команде, используйте синтаксис команды which, как показано.

Когда пользователь пытается обновить пакеты, на экране появляется сообщение об ошибке, указывающее, что пользователю не разрешено это делать.

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

jumpcloud ALL=(ALL) !/usr/sbin/shutdown,!/usr/sbin/poweroff, !/usr/sbin/reboot,!/usr/sbin/init,!/usr/sbin/halt

Любая попытка пользователя выключить или перезагрузить систему будет пресечена системой.

Как запускать определенные команды sudo без пароля

Иногда может потребоваться выполнить некоторые команды без запроса пароля. Это особенно полезно, если вы запускаете сценарий, содержащий команду sudo.

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

jumpcloud ALL=(ALL) NOPASSWD: /usr/bin/apt update

Заключение

Управление привилегиями пользователей обычно является одной из первостепенных задач, которую должен выполнять каждый системный администратор. Привилегии Sudo должны предоставляться только доверенным пользователям, таким как группы поддержки или эксплуатации.

Всегда рекомендуется ограничивать пользователей sudo подмножеством системных команд. Тем самым вы предоставляете им основные привилегии, необходимые им для выполнения своих ролей. Неограниченный доступ к sudo может нанести ущерб, поскольку это может привести к тому, что пользователь sudo выполнит некоторые несанкционированные операции, которые могут нанести ущерб системе. Или, что еще хуже, неограниченные привилегии доступа к sudo могут значительно упростить злоумышленнику захват системы.

При этом управление процессом назначения определенных разрешений конкретным пользователям может занять слишком много времени и быстро перечеркнуть ваши приоритеты, особенно если вы сталкиваетесь с растущей средой и растущей командой. Возможности JumpCloud по управлению устройствами Linux упрощают управление доступом sudo для всего парка с помощью настроек безопасности и разрешений пользователей.Чтобы увидеть, как это работает, а также ряд других функций безопасности и управления устройством, зарегистрируйте бесплатную учетную запись сегодня. JumpCloud можно использовать бесплатно для 10 пользователей и 10 устройств; мы также предоставляем круглосуточную поддержку в приложении в течение первых 10 дней использования.

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

В следующем руководстве вы научитесь добавлять пользователя в группу sudoers в любой системе Ubuntu.

Оглавление

Предпосылки

  • Рекомендуемая ОС: любая текущая ОС Ubuntu.
  • Учетная запись пользователя: root-доступ

Обновление операционной системы

Обновите операционную систему Ubuntu 20.04, чтобы убедиться, что все существующие пакеты обновлены:

Изменение на корневой (su)

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

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

Теперь, когда ваш пароль root установлен, переключитесь на root с помощью следующей команды su:

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

Создание и учетная запись пользователя в Ubuntu

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

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

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

Теперь, когда вы установили пароль, вам будет предложено ввести дополнительную информацию о добавляемом имени пользователя. Заполните детали как можно точнее, и вы можете пропустить детали, если хотите, нажав клавишу ввода.

После этого введите «Y» и нажмите «ENTER KEY», чтобы продолжить.

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

Добавить нового пользователя в группу Sudoers в Ubuntu

В следующей части руководства, когда вы узнали, как добавить пользователя, вы можете предоставить новому пользователю, которого вы назвали, или существующему пользователю доступ sudoers, введя следующую команду:

Пример использования нашего имени, которое мы создали:

Рекомендуется проверить, успешно ли добавлено имя пользователя в группу sudoers. Для этого запустите команду id:

Пример использования нашего имени, которое мы создали:

В качестве альтернативы можно использовать команду gpasswd следующим образом:

Пример использования нашего имени, которое мы создали:

Подтвердить и протестировать нового пользователя Sudo

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

Войдите в систему с помощью sudo следующим образом:

Пример использования нашего имени, которое мы создали:

Теперь подтвердите имя пользователя командой sudo вместе с whoami:

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

Поздравляем, вы добавили новое имя пользователя в группу sudoers.

Комментарии и заключение

В этом руководстве вы узнали, как добавлять пользователей в операционную систему Ubuntu и добавлять разрешения sudo.В целом, это руководство должно работать для всех текущих версий Ubuntu, которые поддерживаются, и рекомендуется предоставлять разрешения только доверенным пользователям, поскольку они будут иметь доступ к конфиденциальным файлам с разрешением, предоставленным sudo.

Читайте также: