在不同的主要/次要组中添加多个用户帐户

在不同的主要/次要组中添加多个用户帐户

我正在尝试在 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 并查看它显示的内容。抱歉,我还不能发表评论。

相关内容