~からhttps://unix.stackexchange.com/a/18290/674
カーネルを見る
概念的には、プロセスは3つのグループに属します。各グループは、次のグループのサブセットです。
- プロセスによって生成されたファイルが属するプロセスの基本グループとして機能する単一のグループ。
- 確認済みグループのコレクショングループがファイルを開くための権限が必要な場合。
- グループコレクション追加の権限で実行されるプロセスが悪用される可能性があります。
歴史的な理由から、これらのセットは次のとおりです。
- これ有効グループID (良い);
- 有効グループIDプラス補助グループID;
- 上記のすべてのプラス実際のグループID そして保存されたコレクショングループID。
質問:
ポイント3で「プロセスが利用できる追加の権限で実行されるプロセス」はどうですか?
この状況は、ポイント2の「グループにファイルを開く権限が必要な場合」の状況とは異なりますか?
通常、「セカンダリグループID」と2番目のエントリにはデフォルトグループIDがそれぞれ含まれていますか?
「一般的に」という言葉は、私が気づいた出力に次の1次グループと2次グループが
id
含まれていることを意味しますgroups=
。 https://unix.stackexchange.com/a/18203/674「各ユーザーは複数のセカンダリグループに属することができます。このグループは出力の末尾に一覧表示されます。id
したがって、プライマリグループもセカンダリグループであることを知りたいです。
ありがとうございます。
ベストアンサー1
特にLinuxでは、最近「プロセスが利用できる追加の権限で実行されるプロセス」は、次のようなプロセスです。
CAP_SETGID
「ユーザーの名前空間に機能があります。」。これら3つの項目の紹介では、「各セットは次のセットのサブセット」と記載されています。したがって、ポイント3で説明されているセットは、ポイント2で説明されているセットと概念的に異なります。
id
印刷効果的なデフォルト以外のグループを使用して有効グループを変更できますnewgrp
。デフォルトグループはデフォルトの物理/有効グループです。 Linuxでは、getgroups
'マンページ「返されたリストに呼び出しプロセスの有効なグループIDが含まれているかどうかは指定されていません」と記載されているため、セカンダリグループに必ずしもプライマリグループが含まれるわけではありません。
それでもLinuxを具体的に考えているなら、読む価値があります。credentials
マンページ。