セッションで「ログアウト」すると、新しく追加されたセカンダリグループがアクティブになるのはなぜですか? [コピー]

セッションで「ログアウト」すると、新しく追加されたセカンダリグループがアクティブになるのはなぜですか? [コピー]

私は次の質問をしました ユーザー補助グループが追加されましたが、「groups(1)」に変更は表示されません。今日早く。今、この答えがなぜ機能するのか知りたいです。走った後

adduser user group

なぜユーザーログアウトする必要があります(ウィンドウマネージャがない状況でこれが何を意味するのかわかりません)。またはその理由は何ですか?新しいグループ(1)電話する必要がありますか?

ベストアンサー1

マンページを見ると、資格adduser子プロセスがリアルタイムで変更をすぐに反映しない理由を理解することができます。

抜粋

fork(2)によって生成された子プロセスは、親プロセスのユーザーとグループIDのコピーを継承します。 execve(2)中に、プロセスの実際のユーザーとグループIDと補足グループIDは、execve(2)で説明されているように変更できます。

では、これはどういう意味ですか?

ログオフすると、後続のすべてのプロセスが生成される親プロセスが終了します。デスクトップなどのすべてこの基本プロセスには、/etc/passwd&を読み込むためのグループ情報が含まれています/etc/group

環境でグループ情報を取得する方法に役立つ別のファイルには、次/etc/nsswitch.confの行が含まれます。

passwd:     files
shadow:     files
group:      files

これは、前述のファイルからパスワード、グループなどに関する情報のみを読むようにシステムに指示します。

これらの行は、この情報を取得するために他のソース(NIS、LDAPなど)を使用するようにシステムに簡単に指示できます。

nsswitch.conf

マニュアルページを見ると、nsswitch.confシステムがユーザー名、グループ、パスワードで構成されるさまざまな「データベース」の内容を取得する方法がわかります。

抜粋

FILES
       A service named SERVICE is implemented by a shared object library named 
       libnss_SERVICE.so.X that resides in /lib.

       /etc/nsswitch.conf       configuration file
       /lib/libnss_compat.so.X  implements `compat' source for glibc2
       /lib/libnss_db.so.X      implements `db' source for glibc2
       /lib/libnss_dns.so.X     implements `dns' source for glibc2
       /lib/libnss_files.so.X   implements `files' source for glibc2
       /lib/libnss_hesiod.so.X  implements `hesiod' source for glibc2
       /lib/libnss_nis.so.X     implements `nis' source for glibc2
       /lib/libnss_nisplus.so.2 implements `nisplus' source for glibc 2.1

NOTES
       Within each process that uses nsswitch.conf, the entire file is read only
       once; if the file is later changed, the process will continue using the 
       old  configuration.

このコメントを見ると、このファイルと同様の状況が反映され、nsswitch.confリアルタイムで変更できないという意味です。

おすすめ記事