プロセスの場合、
実際のユーザーは必ずしも実際のグループのメンバーですか?
有効ユーザーは有効グループのメンバーでなければなりませんか?
実際のユーザーは有効なグループのメンバーである必要がありますか?
有効なユーザーは実際のグループのメンバーである必要がありますか?
重要な場合は、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()
呼び出しプロセスの実際の有効なユーザーIDを設定します。
実ユーザーまたは実効ユーザーIDに-1の値を指定すると、システムはIDを変更せずに残します。
権限のないプロセスは、実効ユーザーIDを実ユーザーID、実効ユーザーID、または保存されたセットユーザーIDにのみ設定できます。
権限のないユーザーは、実際のユーザーIDを実際のユーザーIDまたは有効なユーザーIDにのみ設定できます。
実ユーザIDが設定されている場合、または有効ユーザIDが以前の実ユーザIDと異なる値に設定されている場合、保存された設定ユーザIDは新しい実効ユーザIDに設定される。
まさにこれと同様に、setregid()は呼び出しプロセスの実際的で効果的なグループIDを設定し、上記のすべては「ユーザー」ではなく「グループ」に適用されます。