Управление группами в Linux с помощью groupadd, usermod и groupdel

CompTIABeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы освоите ключевые навыки управления группами пользователей в операционной системе Linux. Вы на практике изучите основные утилиты командной строки, предназначенные для администрирования групп: groupadd для создания новых групп, usermod для изменения членства пользователей в группах и groupdel для удаления групп из системы.

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

Создание новой группы Linux с помощью groupadd

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

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

Сначала откройте терминал. Он должен открыться в каталоге по умолчанию ~/project. Теперь создадим новую группу с именем research.

Выполните следующую команду:

sudo groupadd research

Команда sudo повышает ваши привилегии для выполнения этой административной задачи. groupadd — это команда для создания группы, а research — имя, которое мы выбрали для нашей новой группы.

Если команда выполнена успешно, она не выведет никакого текста. Чтобы подтвердить создание группы, вы можете проверить файл /etc/group. В этом файле хранится информация обо всех группах в системе. Мы можем использовать команду grep для поиска нашей только что созданной группы в этом файле.

grep research /etc/group

В выводе вы должны увидеть новую строку, соответствующую группе research. Формат записи следующий: имя_группы:заполнитель_пароля:ID_группы:члены_группы. Ваш идентификатор группы (GID) может отличаться от приведенного ниже примера, это нормально, так как система назначает его автоматически.

research:x:5003:

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

Добавление пользователя в дополнительную группу с помощью usermod

На этом этапе вы добавите существующего пользователя в созданную вами группу research. В Linux у каждого пользователя есть основная группа (primary group), а также он может принадлежать к нескольким дополнительным группам (secondary groups или supplementary groups). Это обеспечивает гибкое управление правами доступа. Теперь, когда группа research готова, мы добавим в нее текущего пользователя labex в качестве дополнительной группы. Это наделит пользователя labex всеми правами, назначенными группе research, не меняя его основную группу.

Для изменения членства пользователя в группах мы используем команду usermod. Это мощная утилита для изменения данных учетной записи пользователя.

Мы будем использовать команду usermod с опциями -aG:

  • -G: Указывает новый список дополнительных групп.
  • -a: Означает «append» (добавить). Это очень важная опция. Она добавляет пользователя в указанную группу (или группы), не удаляя его из текущих групп. Если вы пропустите -a, пользователь будет удален из всех остальных дополнительных групп, не указанных в команде.

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

sudo usermod -aG research labex

Эта команда требует sudo, так как она изменяет информацию о пользователях на системном уровне. research — это группа, в которую мы добавляем пользователя, а labex — имя изменяемого пользователя. Как и groupadd, эта команда не выводит никаких сообщений при успешном выполнении.

Вы можете сразу проверить изменения, снова заглянув в файл /etc/group.

grep research /etc/group

Теперь вы должны увидеть пользователя labex в конце строки группы research.

research:x:5003:labex

Это подтверждает, что labex теперь является членом группы research.

Проверка членства в группах с помощью grep и groups

На этом этапе вы изучите более эффективные способы проверки членства пользователя в группах. Хотя мы уже использовали grep для файла /etc/group, чтобы увидеть членов конкретной группы, существуют более прямые методы просмотра всех групп, к которым принадлежит конкретный пользователь. Это обычная задача для системных администраторов при проверке прав доступа и конфигураций.

Сначала снова воспользуемся grep, но на этот раз для поиска всех дополнительных групп, в которых состоит пользователь labex. Выполняя поиск по имени пользователя в файле /etc/group, вы увидите все записи групп, где labex указан как участник.

Выполните эту команду в терминале:

grep labex /etc/group

Вывод покажет каждую строку в /etc/group, содержащую строку «labex». Сюда войдет группа research, которую мы добавили, а также любые другие стандартные дополнительные группы. Ваш вывод может содержать дополнительные группы в зависимости от конфигурации системы.

sudo:x:27:labex
ssl-cert:x:121:labex
labex:x:5000:
public:x:5002:labex
research:x:5003:labex

Хотя этот метод работает, более прямой и удобной командой для этой задачи является groups. Эта команда специально разработана для вывода списка всех групп (как основных, так и дополнительных) для конкретного пользователя.

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

groups labex

Эта команда предоставляет краткую сводку принадлежности пользователя к группам в одну строку.

labex : labex sudo ssl-cert public research

В этом выводе имя перед двоеточием (labex) — это запрашиваемый пользователь. Список после двоеточия показывает все группы. Первая группа в списке (labex) — это основная группа пользователя. Все последующие группы (sudo, ssl-cert, public, research) являются дополнительными группами. Эта команда часто является самым быстрым способом получить полную картину членства пользователя в группах.

Удаление группы с помощью groupdel и проверка удаления

На этом заключительном этапе вы узнаете, как удалить группу из системы. Это стандартная административная задача, когда команда расформировывается или проект завершается, и связанная с ним группа больше не нужна. Для удаления группы мы используем команду groupdel.

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

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

sudo groupdel research

Команда groupdel при успешном выполнении не выводит никаких сообщений. Она просто удаляет запись о группе из базы данных групп системы, в первую очередь из файла /etc/group.

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

grep research /etc/group

На этот раз команда не должна выдать никакого результата. Она просто вернет вас к командной строке. Отсутствие вывода является подтверждением того, что строка, содержащая research, была удалена из файла /etc/group, и, следовательно, группа больше не существует в системе.

Резюме

В этой лабораторной работе вы изучили основы управления группами пользователей в среде Linux. Вы начали с создания новой группы с именем research с помощью команды sudo groupadd — важнейшего инструмента для организации пользователей и упрощения управления правами доступа. Чтобы подтвердить успешное создание группы, вы проверили файл /etc/group с помощью команды grep, убедившись, что новая запись была добавлена корректно.

Лабораторная работа также охватила полный жизненный цикл управления группами. Вы научились добавлять существующего пользователя в дополнительную группу с помощью команды usermod и проверять членство в группах, используя такие инструменты, как grep и groups. Наконец, вы попрактиковались в удалении группы из системы с помощью команды groupdel и проверке результата, закрепив свое понимание основных задач администрирования групп.