imx6ボードで異なるグループで複数のユーザーアカウントを作成しようとしています。まだデバイスに作成されたユーザーはいません。したがって、私は1000:1000をデフォルトのユーザー:グループIDと見なします。
実装する必要があるシナリオは次のとおりです。
2つのグループを作成する:grp1、grp2
3人のユーザー作成: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に2つのグループを作成します。
grp1:x:1001:
grp2:x:1002:
ユーザーAとBを作成するにはgrp1を使用し、ユーザーCを生成するにはgrp2を使用します。
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など)を持ち、サーバー/クライアントプログラムが正常に実行されます。
問題は、セカンダリグループ「grp2」にグループBを追加することです。
「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
グループgrp2にBを追加しても、デフォルトグループはまだgrp1なので、hist IDは変更されません。
これにより:
cat /etc/group | grep grp1
何が見えますか?または、グループBコマンドを実行して表示される内容を確認してください。申し訳ありません。まだコメントできません。