web-dev-qa-db-ja.com

AmazonLinuxがユーザーをグループに追加

開発を行っている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」をグループに追加するときに問題があるようですが、なぜこれが発生するのかわかりません。どんな助けでも大歓迎です。ありがとう。

2
nybon

現在のシェルは、自分をグループに追加する前に初期化されたため、後でグループメンバーシップに変更を反映することはできません。あなたはできる

exec sg docker

現在のシェルを、自分で追加したグループに明示的に切り替えられた新しいシェルに置き換えるか、単にログアウトして再度ログインします。

1
tripleee