ユーザーとプロセスグループの関係

ユーザーとプロセスグループの関係

プロセスの場合、

  1. 実際のユーザーは必ずしも実際のグループのメンバーですか?

  2. 有効ユーザーは有効グループのメンバーでなければなりませんか?

  3. 実際のユーザーは有効なグループのメンバーである必要がありますか?

  4. 有効なユーザーは実際のグループのメンバーである必要がありますか?

重要な場合は、Linuxについて話しています。

ありがとうございます。

答え1

いいえいいえいいえ:

uid(gidと同じ)プロセスが有効なID、実際のID、その他のIDを移動できることを説明します。プロセスにCAP_SETUID機能がある場合にのみ、IDを任意に設定できます。

UIDとGIDの実装方法を見てみましょう。

両方の数値はデータベーステーブル(ファイル)に格納され、両方のテーブルは独立しています。 UIDとデフォルトのGIDがあります。どちらもリチャードに電話をかけましたが、電話番号は異なりました。唯一の接続は、ユーザー名、UID、およびデフォルトのGIDを一覧表示する/ etc / passwdです。 /etc/group にはグループ名、GID、UID がリストされます。

ほとんどの場合、これらの関係はログイン時とsetgidが呼び出されたときを除いて解決されません。

効率のために必要なものだけをチェックしてください。

  • プロセスは、有効なID、実際のID、その他(ファイル、保存)間でIDを移動できます。
  • プロセスにCAP_SETUID機能がある場合にのみ、IDを任意に設定できます。

-

~からマニュアルページsetreuid()

setreuid()呼び出しプロセスの実際の有効なユーザーIDを設定します。

実ユーザーまたは実効ユーザーIDに-1の値を指定すると、システムはIDを変更せずに残します。

権限のないプロセスは、実効ユーザーIDを実ユーザーID、実効ユーザーID、または保存されたセットユーザーIDにのみ設定できます。

権限のないユーザーは、実際のユーザーIDを実際のユーザーIDまたは有効なユーザーIDにのみ設定できます。

実ユーザIDが設定されている場合、または有効ユーザIDが以前の実ユーザIDと異なる値に設定されている場合、保存された設定ユーザIDは新しい実効ユーザIDに設定される。

まさにこれと同様に、setregid()は呼び出しプロセスの実際的で効果的なグループIDを設定し、上記のすべては「ユーザー」ではなく「グループ」に適用されます。

関連情報