開発を行っているAmazonLinuxAMIイメージを使用しています。そして、以下のようにデフォルトユーザー「ec2-user」をグループ「docker」に追加したいと思います。
Sudo groupadd docker
Sudo gpasswd -a ec2-user docker
ユーザーec2-user
としてログインし、groups ec2-user
を実行すると、次のように表示されます。
ec2-user : ec2-user wheel docker
そしてこれは、「ec2-user」がグループ「docker」に追加されたことを示しているようです。ただし、パラメータなしでgroups
コマンドを実行すると、groups ec2-user
としてログインしたため、ec2-user
と同じになります。次のように表示されます。
ec2-user wheel
また、ec2-userはまだグループ「docker」に含まれていないことがわかります(実際には、グループ「docker」に属するファイルにアクセスしようとしたときにアクセス許可エラーが報告されたため、このグループには追加されませんでした)。
そして、この方法で「ec2-user」をグループに追加しようとすると、これは起こりません。
Sudo gpasswd -a ${USER} docker
そして、「harry」のような他のユーザー名を以下のようなグループに問題なく追加できることがわかりました。
Sudo gpasswd -a harry docker
私の質問は、この動作の原因は何ですか?この特定のユーザー名「ec2-user」をグループに追加するときに問題があるようですが、なぜこれが発生するのかわかりません。どんな助けでも大歓迎です。ありがとう。
現在のシェルは、自分をグループに追加する前に初期化されたため、後でグループメンバーシップに変更を反映することはできません。あなたはできる
exec sg docker
現在のシェルを、自分で追加したグループに明示的に切り替えられた新しいシェルに置き換えるか、単にログアウトして再度ログインします。