我正在尝试在 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
这将在 /etc/passwd 中创建一个 uid:guid 1000:1000 的用户
abc:$1$SqakfDG7$cPlfYQT8YmkcvgzazVKvZ/:1000:1000:Linux User,,,:/home/abc:/bin/sh
addgroup grp1
addgroup grp2
上述步骤在 /etc/group 中创建两个组,如下所示。
grp1:x:1001:
grp2:x:1002:
使用 grp1 创建用户 A、B,使用 grp2 创建用户 C
adduser -G grp1 A
adduser -G grp1 B
adduser -G grp2 C
这将在 /etc/passwd 中创建用户 A
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具有相同的组ID(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)
尝试使用 usermod 命令将用户“B”添加到“grp2”,如中所述小学组和中学组
usermod -a -G grp2 B
但“id B”没有改变
uid=1002(B) gid=1001(grp1) groups=1001(grp1)
我什至尝试在第一次创建组 grp1 和 grp2 时将用户“B”添加到组中
adduser -G grp1,grp2 B
但是,我收到以下错误。
adduser: unknown group grp1,grp2
知道我做错了什么吗?
多谢!!
答案1
将 B 添加到组 grp2 不会更改 hist ID,因为他的主要组仍然是 grp1。
如果你这样做:
cat /etc/group | grep grp1
你看到了什么?或者尝试命令:groups B 并查看它显示的内容。抱歉,我还不能发表评论。