Добавление нескольких учетных записей пользователей в различные основные/вторичные группы.

Вопрос или проблема

Я пытаюсь создать несколько учетных записей пользователей с различными группами на плате imx6. В настоящее время на устройстве нет созданных пользователей. Поэтому я вижу 1000:1000 в качестве ID пользователя:группы по умолчанию.

Сценарий, который мне нужно реализовать, следующий:

Создать две группы: grp1, grp2

Создать трех пользователей: A, B, C

Пользователь A: основная группа-grp1, Пользователь B: основная группа-grp1, дополнительная группа- grp2 Пользователь C: основная группа-grp2

Также эти пользователи должны иметь возможность общаться через очереди сообщений. Пользователи (A & B) и (B & C) должны иметь возможность общаться через очереди сообщений. Пользователи (A & C) не должны иметь возможность общаться. В серверной/клиентской программе я уже установил права на файл mq_open как (S_IRWXU | S_IRWXG), чтобы только пользователи в одной группе могли общаться.

Шаги, которые я предпринял для создания разных пользователей:

adduser abc 

Это создает пользователя с uid:guid 1000:1000 в /etc/passwd

abc:$1$SqakfDG7$cPlfYQT8YmkcvgzazVKvZ/:1000:1000:Linux User,,,:/home/abc:/bin/sh

addgroup grp1
addgroup grp2

Вышеуказанный шаг создает две группы в /etc/group как ниже.

grp1:x:1001:
grp2:x:1002:

Создать пользователя A,B с grp1, и C с grp2

adduser -G grp1 A
adduser -G grp1 B
adduser -G grp2 C

Это создает пользователя A в /etc/passwd

A:$1$E8MDq2ND$/qU4011IYRaisq7EfJh00/:1001:1001:Linux User,,,:/home/A:/bin/sh
B:$1$l2iSdPAh$ggD5NQAC1nJzbVfNVO/Kk.:1002:1001:Linux User,,,:/home/B:/bin/sh
C:$1$2Y6v67Wz$TYNxHBltTNeCDhAnnAFd3.:1003:1002:Linux User,,,:/home/C:/bin/sh

И в /etc/group

A:x:1003:
B:x:1004:
C:x:1005:

Как видно, пользователи A и B имеют одинаковый идентификатор группы (grp1) (то есть 1001), и моя серверная/клиентская программа успешно работает.

Проблема заключается в добавлении группы B в дополнительную группу “grp2”.

Запуск “id A” “id B” и “id C” дает мне:

uid=1001(A) gid=1001(grp1) groups=1001(grp1)
uid=1002(B) gid=1001(grp1) groups=1001(grp1)
uid=1003(C) gid=1002(grp2) groups=1002(grp2)

Попробовал добавить пользователя “B” в “grp2” с помощью команды usermod, как объясняется в основные и дополнительные группы

usermod -a -G grp2 B

но “id B” не меняется

uid=1002(B) gid=1001(grp1) groups=1001(grp1)

Я даже пробовал добавить пользователя “B” в группы grp1 и grp2 при создании его в первый раз

adduser -G grp1,grp2 B

Тем не менее, я получаю следующую ошибку.

adduser: unknown group grp1,grp2

Есть идеи, что могло пойти не так?

Большое спасибо!!

Добавление B в группу grp2 не изменит его ID, так как его основная группа все еще grp1.

Если вы выполните:

cat /etc/group | grep grp1

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

Ответ или решение

Создание и управление пользователями и их группами является важной задачей в любой операционной системе на базе Linux. В данной ситуации, вам необходимо настроить пользователей и группы на устройстве imx6 с учетом всех специфических требований. Давайте подробно рассмотрим, как правильно создать пользователей и назначить их в первичные и вторичные группы, а также устраним возникшую проблему с добавлением пользователя "B" в группу "grp2".

Шаги по созданию пользователей и групп:

  1. Создание групп:
    Для начала давайте создадим группы grp1 и grp2:

    addgroup grp1
    addgroup grp2
  2. Создание пользователей:
    Создайте пользователей A, B и C, назначая их в соответствующие группы:

    adduser -G grp1 A   # Пользователь A с первичной группой grp1
    adduser -G grp1 B   # Пользователь B с первичной группой grp1
    adduser -G grp2 C   # Пользователь C с первичной группой grp2
  3. Назначение вторичных групп:
    Чтобы добавить пользователя "B" в группу "grp2" в качестве вторичной, воспользуйтесь командой usermod:

    usermod -aG grp2 B

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

Проверка успешности выполнения:

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

  • id B

    Это должно показать:

    uid=1002(B) gid=1001(grp1) groups=1001(grp1),1002(grp2)

Этот результат означает, что пользователь B успешно добавлен в группу grp2 как вторичную.

Возможные проблемы и их решения:

  • Команда id не показывает изменения:
    Если, несмотря на использование usermod, команда id не отражает изменения, попробуйте выйти и заново войти в систему или перезагрузить систему, так как изменения в группах могут примениться не сразу.

  • Ошибка при создании пользователя:
    Убедитесь, что группы были созданы до добавления пользователей. Ошибка adduser: unknown group указывает на то, что группа не была найдена.

  • Есть конфликт с правами файла:
    Убедитесь, что ваши настройки прав доступа к файлам (например, в mq_open) соответствуют требованиям для работы через общие группы.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...