今日は奇妙な行動を見つけました。新しいグループにユーザーを追加すると、次のようになります。
# gpasswd -a test myuser
groups
その後、新しいbashセッションに接続すると、結果は次のようになりますgroups myuser
。
myuser@mycomputer$ groups
wheel myuser
myuser@mycomputer$ groups myuser
wheel myuser test
再起動時にのみ出力はgroups
同じに表示されますが、groups myuser
グループが必ずしも同じ順序で表示されるわけではありません。
だから私の質問は簡単です。なぜですか?
ベストアンサー1
新しいグループが開始されるまで、グループメンバーシップの変更は適用されないためです。ログインシェル。新しい非ログインインタラクティブシェルセッション(新しい端末を開いたときに取得されるセッション)を開始することは関係ありません。
したがって、を実行すると、groups
ユーザーが現在属しているグループが印刷されます。ただし、これらのグループはユーザーが初めてログインしたときに設定され、再度ログインするまで変更できません。したがって、groups
新しいグループは含まれません。
一方、システムは実行時にgroups myuser
検索しません。現在のユーザーは以下に属します今は、ユーザーが属するグループを見つけますmyuser
。これは/etc/group
設定ファイルを読んで得たものです(おそらく)。ユーザーが新しいグループに属するように設定されているため、/etc/groups
このコマンドはユーザーがグループに属していなくてもその内容も表示します。今もう一度ログインしていないため、すでにこのグループに属しています。