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

Обновлено: 07.07.2024

Задача sudo , дать обычному пользователю в Linux возможность выполнения команд от имени root или другого пользователя. Помимо этого ведется лог всех выполненных команд и аудит безопасности – неудачных доступов. Все выгоды использования sudo очевидны. Если пользователю необходимо выполнять некие задачи, для которых требуется root-доступ, нет необходимости давать ему пароль от суперпользователя. Можно просто задать доступ именно к необходимым функциям. При этом все его действия будут писаться в лог-файл и в случае необходимости можно всегда провести аудит.

Установка

Установка sudo в CentOS/RedHat и т.п.

с менеджером yum

Установка sudo в Debian/Ubuntu и т.д.

Вводная информация

Для начала давайте создадим пользователей над которым будем ставить эксперименты (подробно про создание пользователей можно почитать тут – Пользователи в Linux — добавление, изменение, удаление):

Сразу поместим нашего пользователя hc в группу wheel. Традиционно, в эту группу помещаются пользователи, которые будут иметь административный доступ. Это повелось еще с тех пор, когда основным инструментом для делегирования прав была команда su . Если интересуют подробности – поищите сами.

Второй пользователь нужен нам для разнообразия.

Файл конфигурации /etc/sudoers и visudo

Все настройки хранятся в файле /etc/sudoers . Файл этот не совсем обычный, даже под рутом просто так его отредактировать не получиться, т.к. запись в файл запрещена. Для работы с этим файлом есть специальная утилита visudo . Смысл такого ограничения вот в чем. Любая ошибка делает sudo неработоспособным, стоит ошибиться или описаться и получаете кучу проблем. Вы можете совсем лишиться доступа к административным функциям и придется пользоваться recovery mode для восстановления доступа. Это если у вас есть физический доступ к серверу. А если это VPS?

Что бы такое не происходило visudo при запуске блокирует файл sudoers и для редактирования открывает копию. При сохранении происходит проверка синтаксиса и если допущена ошибка – выдаст об этом предупреждение.

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

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

Добавление пользователей

Если вы находитесь в системе под пользователем root , то создать нового пользователя можно следующей командой:

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

Теперь следует назначить пользователю пароль:

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

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

Добавление sudo прав пользователю

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

Можно добавить пользователя в группу wheel (каждый её член автоматически получает доступ к sudo ) при помощи команды gpasswd . Такой подход является самым безопасным и простым для управления доступа к sudo .

Наберите следующую команду если находитесь под пользователем root :

Если вы под другим пользователем, то выполните следующее:

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

Вам потребуется ввести пароль к вашему обычному аккаунту. Команда будет выполнена с правами администратора как только пароль будет введен.

Управление пользователями с правами sudo

Команда gpasswd позволяет вам добавлять и удалять пользователей из групп (например wheel ), но она не покажет вам членов определенной группы. Чтобы получить список пользователей, принадлежащих к группе wheel (то есть увидеть пользователей с правами sudo ), вам понадобится команда lid . По-умолчанию, эта команда выводит список групп, к которым принадлежит пользователь, но при помощи ключа -g вы можете увидеть список членов какой-либо группы.

Вы получите имена пользователей и соответствующие UID пользователей группы wheel . Таким образом вы легко сможете проверить были ли предыдущие команды выполнены успешно и получил лм ваш новый пользователь необходимые права.

Удаление пользователей

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

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

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

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

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

Заключение

Теперь у вас должна быть полная картина как удалять и добавлять пользователей на вашем CentOS 7 сервере. Такой подход управления пользователями позволит вам разделить их и выдавать только те права, которые им необходимы для выполнения работы. Теперь вы можете перейти к дальнейшей настройке сервера, например, установке LAMP или LEMP.

Команда sudo (которая расшифровывается как “substitute user and do” – “подменить пользователя и выполнить”) позволяет пользователю выполнять административные команды, которые обычно доступны только для пользователей с правами root (или суперпользователей). Следуя данной инструкции, вы легко научитесь создавать пользователей, которые смогут выполнять подобные команды, – и при этом вам не нужно будет изменять файлы настроек sudoers. Если вы собираетесь дать права sudo уже существующему пользователю, пропустите первые два шага и начните сразу с третьего.

Шаг 1

Залогиньтесь на свой сервер в качестве root-пользователя.

Шаг 2

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

(вместо username напишите имя, которое вы хотите присвоить новому пользователю)

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

Задайте и подтвердите новый пароль в командной строке. Настоятельно рекомендую придумать сложный пароль!

Шаг 3

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

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

Шаг 4

Проверьте, обладает ли новый пользователь sudo-правами. Для этого:

  • Введите команду su (смена пользователя), чтобы перейти в аккаунт созданного пользователя:
  • Напишите sudo перед командой, которую вы хотите запустить (command_to_run), пользуясь правами суперпользователя.
  • К примеру, вы можете запросить список содержимого корневой директории /root – данная информация обычно доступна только root-пользователю.
  • Когда вы в первый раз будете использовать команды sudo в данной сессии, у вас запросят пароль для входа в аккаунт данного пользователя. Для того, чтобы продолжить, вам необходимо ввести пароль.

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


Начало работы

Для завершения этого руководства, вам потребуется следующее:

  • 1 Узел (облачный сервер или выделенный сервер) с чистой установкой CentOS 7.

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

Учебник

Мы начнем с создания обычного пользователя. В этом случае пользователь с именем “andreyex.”

Установить пароль пользователя, он может подключиться и проверить подлинность.

По умолчанию все члены группы “wheel” получают привилегии sudo. Это позволяет членам группы выполнять команды в качестве корневого пользователя. Давайте добавим нашего пользователя в эту группу.

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

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

Теперь вы можете войти в систему как andreyex и выполнить любую команду как root. Только помните писать “sudo” перед любой командой, которую вы хотите запустить с правами администратора.

Вывод

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


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

Создаем нового пользователя

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

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


Создание нового пользователя ubuntu

Как мы помним — в консоли Linux пароли не отображаются при печати, даже в виде звездочек. Заполняем пароль и повторным его вводом подтверждаем корректность:


Подтверждаем правильность ввода пароля

После вышеописанных действий система предложит указать дополнительную информацию о пользователе. Данный пункт является необязательным и можно просто оставить все поля пустыми? после чего подтвердить операцию ввода, вписав y в поле ввода:


Заполняем дополнительную информацию о пользователе

Добавляем пользователя в группу sudo

Теперь, когда пользователь создан присоеденим его к группе суперпользователя — sudo:


Присоединяем пользователя Ubuntu к групе sudo

Осталось только проверить, что все прошло успешно. Переключим пользователя на testuser и попробуем выполнить команду whoami от имени суперпользователя:


Смена пользователя и проверка root

Чтобы переключить текущего пользователя обратно на своего — используем команду su имя_пользователя.

Как дать существующему пользователю привелегии суперюзера

Если необходимо добавить уже существующего пользователя в группу sudo нужно выполнить команду:

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

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


Удаление пользователя из группы sudo

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


Проверяем отсутствие прав суперпользователя

Как мы можем видеть — система не позволяет пользователю использовать команду sudo.

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

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

Мы проверим вас, как создать пользователя sudo в CentOS 7. Sudo - это программа командной строки Linux, которая позволяет выполнять команды как суперпользователя или другого пользователя системы. Файл конфигурации предлагает подробные разрешения доступа, включая команды включения только от вызывающего терминала; требующие пароля для каждого пользователя или группы; требуя повторного ввода пароля каждый раз или никогда не требующего пароля для конкретной командной строки. Он также может быть настроен для разрешения передачи аргументов или нескольких команд. В этом уроке мы покажем вам, как создать пользователя sudo в CentOS 7.

Шаги по созданию нового пользователя Sudo на CentOS 7

1. Подключение через SSH

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

2. Добавить пользователя в CentOS

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

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

3. Создать сильный пароль

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

Убедитесь, что вы используете Надежный пароль, иначе пароль не будет проверен на проверку словаря. Вам будет предложено снова ввести пароль, и после его ввода вы будете уведомлены о том, что токены аутентификации успешно обновлены:

4. Добавить пользователя в группу колес в CentOS

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

Опять же, убедитесь, что вы используете имя фактического пользователя, а не newuser .
Теперь используйте visudo открыть и отредактировать /etc/sudoers файл. Убедитесь, что строка, начинающаяся с %wheel не комментируется. Он должен выглядеть так:

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

5. Переключиться на пользователя sudo

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

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

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

Вам нужно будет ввести пароль для нового пользователя. Если все в порядке, команда отобразит весь контент в /root каталог. Другой способ проверить это - запустить следующую команду:

Результат команды должен быть аналогичен выходу:

Поздравляем, теперь у вас есть пользователь sudo, который вы можете использовать для управления вашей операционной системой CentOS 7.

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

Требуется: Завести удалённую учетную запись, настроить sudo , сделать переключение в учетную запись root без ввода пароля, отключить авторизацию по паролю, организовать подключение к удалённому серверу по SSH-ключам.

2. Решение.

2.1. Подготовка сервера.

Устанавливаем файловый менеджер Midnight Commander, он очень похож на Norton Commander:

Отключение SELinux.

Состояние работы SELinux:

Ответ:


SELinux включен. Отключим его.

Для этого достаточно выполнить замену строки в вышеописанном конфигурационном файле следующей командой:

Проверим состояние SELinux с помощью команды sestatus , как показано ниже:


Готово! SELinux выключен.

2.2. Создание пользователя.

Создадим учётную запись на сервере. Под ней будет заходить коллега для работы по удалённому доступу. Для удобства можно спросить какое бы он предпочел имя удалённой учетной записи. В примере будет использоваться учетная запись коллеги myrzik.

Создадим ему учетную запись:

Пароль ему делать на сервере не будем, он будет подключаться по ключу к серверу.

2.3. Настройка sudo.

Сделаем копию системного файла.

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

Ответ: Зашел в учетную запись пользователя mytzik ввода без пароля.

Ответ: Зашел в учетную запись root ввода без пароля.

Выходим из цепочки учетных записей.

Настройка sudo и root‘ирование без пароля настроено.

2.4. Авторизация по ключу.

Теперь организуем вход для коллеги с его ключом.

Коллега, который планирует заходить удалённо на наш сервер, должен сгенерировать 2 ключа: приватный и публичный.

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

И так! Есть ключ коллеги id_rsa.pub , который мы получили от него по электронной почте.

Надо его переписать в специальный файл-хранилище ключей локального пользователя на удалённом сервере.

Создадим каталог для посторонних публичных ключей. Пускай будет каталог ~/pub .

Кладу в него ключ id_rsa.pub .

Смотрю что содержится в файле ключа.

Ответ:


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

Ответ:


Файл публичного ключа id_rsa.pub можно удалить, так как он уже не нужен.

Настроим права на каталоги и файлы:

2.5. Отключение авторизации по паролю.

Сделаем копию системного файла.

Отредактируем системный файл:

Запретим аутентификацию по паролю.

Модифицируем файл конфигурации изменением советующего поля на указанное значение:

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

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