cgrules.configを使用して、ユーザー中心のプロセスを私のcgroupに移動する予定です。マニュアルページ(https://linux.die.net/man/8/cgrulesengd)cgrulesengdは、プロセスが有効なUIDまたはGIDを変更するたびに呼び出され、設定に従ってプロセスを移動することを意味します。しかし、「プロセスが有効なUIDまたはGIDを変更する」という声明は実際に何を意味しますか?プロセスの開始時にすべてのシナリオが含まれますか?つまり、新しいプロセスが構成に従って移動されます。
私はいくつかの構成で遊んで、はい、新しいプロセスが移動することを知っていましたが、ドキュメントには明確ではないので、確認したいと思いました。
答え1
あなたは読まなければなりませんhttps://man7.org/linux/man-pages/man7/credentials.7.html
有効ユーザーIDと有効グループID。カーネルはこれらのIDを使用して、メッセージキュー、共有メモリ、セマフォなどの共有リソースにアクセスするときにプロセスが持つ権限を決定します。ほとんどのUNIXシステムでは、これらのIDはファイルにアクセスするときの権限も決定します。ただし、Linuxは以下のファイルシステムIDを使用してこれを行います。プロセスは geteuid(2)(getegid(2)) を使用して有効なユーザー (グループ) ID を取得できます。
ほとんどの場合、プロセスの有効なUIDは実際のUIDと同じです。ただし、これはset-uid実行可能ファイルを実行すると変更される可能性があります。
たとえば、を実行してsu user
有効なuidをrootに変更すると、su
uidを指定されたユーザーに変更できます。ただし、通常のユーザーはsu
パスワードを入力しないと確認できないため、実際のuidを確認します。