グループにユーザー名を追加した後、グループとグループUSERNAMEの出力が異なります。

グループにユーザー名を追加した後、グループとグループUSERNAMEの出力が異なります。

今日は奇妙な行動を見つけました。新しいグループにユーザーを追加すると、次のようになります。

# 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このコマンドはユーザーがグループに属していなくてもその内容も表示します。もう一度ログインしていないため、すでにこのグループに属しています。

おすすめ記事