JavaRush /Курсы /Docker SELF /Управление группами: создание, добавление и удаление поль...

Управление группами: создание, добавление и удаление пользователей из групп (`groupadd`, `usermod -aG`, `groups`)

Docker SELF
2 уровень , 2 лекция
Открыта

1. Знакомство с группами в Linux

Группы в операционной системе Linux позволяют объединять пользователей по интересам, обязанностям или другим критериям и назначать им общие права доступа. Сегодня мы разберём, как работать с группами, добавлять в них пользователей и адекватно управлять этим всем. Готовы? Тогда поехали!

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

  1. Упростить управление доступом к файлам и ресурсам для нескольких пользователей сразу.
  2. Разделить пользователей на команды в зависимости от их роли или задачи.
  3. Минимизировать головные боли системного администратора.

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


2. Базовые команды для управления группами

Linux предоставляет несколько простых и мощных инструментов для работы с группами: groupadd, usermod, groups, groupdel и gpasswd. Мы рассмотрим их шаг за шагом.

1. Создание новых групп groupadd

Создать новую группу в системе предельно просто. Для этого используется команда groupadd. Например, если мы хотим создать группу с названием developers, сделайте следующее:

sudo groupadd developers

И всё! Группа создана. Чтобы убедиться, что она действительно существует, можно заглянуть в файл /etc/group — это как список контактов для всех групп в системе:

cat /etc/group | grep developers

Вы увидите строку вроде такой:

developers:x:1001:

Вот что здесь что:

  • developers — имя группы.
  • x — поле для пароля (обычно не используется).
  • 1001 — это уникальный Group ID (GID).
  • Пустое место после второго двоеточия — сюда добавляются пользователи группы.
Шутка для разбавления:

Если GID — это номер телефона группы, то /etc/group — это её телефонная книга.


2. Добавление пользователя в группу usermod -aG

Теперь давайте наймём разработчиков в нашу новую группу developers. Для этого используется команда usermod с опцией -aG. Например, добавим пользователя john:

sudo usermod -aG developers john

Вот тут важно запомнить:

  • Ключ -a означает append (добавить). Если его пропустить, вы случайно удалите пользователя из всех групп, кроме указанной.
  • Ключ -G указывает группу, в которую добавляется пользователь.

Проверить, в каких группах состоит пользователь, можно командой groups:

groups john

Или немного детальнее, используя команду id:

id john

Вывод будет выглядеть примерно так:

uid=1002(john) gid=1002(john) groups=1002(john),1001(developers)

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

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

sudo gpasswd -d john developers

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


4. Удаление групп groupdel

Если группа больше не нужна, её можно удалить командой groupdel. Например:

sudo groupdel developers
Внимание!

Если в группе остались пользователи, их это никак не затронет. У них просто исчезнет возможность ссылаться на эту группу.


3. Практическое задание

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

Сценарий:

  1. Создайте группу designers.
  2. Создайте двух новых пользователей: alice и bob.
  3. Добавьте этих пользователей в группу designers.
  4. Проверьте, что пользователи действительно добавлены в группу.
  5. Удалите пользователя alice из группы designers.

Решение:

Шаг 1. Создать группу

sudo groupadd designers

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

sudo adduser alice
sudo adduser bob

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

sudo usermod -aG designers alice
sudo usermod -aG designers bob

Шаг 4. Проверить добавление

groups alice
groups bob

Шаг 5. Удалить alice из группы

sudo gpasswd -d alice designers

4. Особенности и типичные ошибки

Работа с группами — это как котята: вроде всё легко и просто, но стоит отвлечься, как они устроят хаос:

  1. Опция -aG. Забудьте поставить -a, и вы случайно удалите пользователя из всех групп, кроме новой. Это особенно "весело", если этот пользователь был частью системной группы, вроде sudo.

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

  3. Соблюдайте именования. Не используйте в именах групп пробелы или спецсимволы. Названия вроде awesome@group работают плохо и заставляют администраторов страдать.

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

В реальной жизни

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

  • Делить права доступа к серверным ресурсам для разработчиков, тестировщиков и администраторов.
  • Настраивать общие рабочие директории для команд.
  • Управлять доступом к базам данных, конфигурационным файлам, скриптам и, конечно, кофе-машине (ну ладно, тут нас пока Linux не спасёт).

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

1
Задача
Docker SELF, 2 уровень, 2 лекция
Недоступна
Создание группы
Создание группы
1
Задача
Docker SELF, 2 уровень, 2 лекция
Недоступна
Добавление пользователя в группу
Добавление пользователя в группу
1
Задача
Docker SELF, 2 уровень, 2 лекция
Недоступна
Работа с несколькими пользователями
Работа с несколькими пользователями
1
Задача
Docker SELF, 2 уровень, 2 лекция
Недоступна
Удаление пользователя из группы и работы с группами
Удаление пользователя из группы и работы с группами
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
PaulGazol Уровень 12
5 мая 2025
Очередная лекция с заданием, которое не сдается в ide
Konstantin Kubrak Уровень 3
24 марта 2025
В задаче написано: Пользователи `mike` и `sara` должны быть созданы с использованием соответствующей команды, например, `adduser` или `useradd`. Но при попытке использовать useradd валидатор выдаёт ошибку, принимается только вариант adduser
5 марта 2025
Последняя команда getent group