Вопрос или проблема
Я пытаюсь создать несколько учетных записей пользователей с различными группами на плате 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".
Шаги по созданию пользователей и групп:
-
Создание групп:
Для начала давайте создадим группыgrp1
иgrp2
:addgroup grp1 addgroup grp2
-
Создание пользователей:
Создайте пользователей A, B и C, назначая их в соответствующие группы:adduser -G grp1 A # Пользователь A с первичной группой grp1 adduser -G grp1 B # Пользователь B с первичной группой grp1 adduser -G grp2 C # Пользователь C с первичной группой grp2
-
Назначение вторичных групп:
Чтобы добавить пользователя "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
) соответствуют требованиям для работы через общие группы.
Заключение
Следуя описанным шагам, вы настроите систему согласно вашим требованиям. Управление пользователями и группами — важная часть администрирования системы, обеспечивающая безопасность и функциональность. Удачи в дальнейших настройках и работах с вашим устройством! Если потребуется дополнительная помощь, не стесняйтесь обращаться за более подробной консультацией.