Linuxユーザーの実行時間をc/C++コードから変更したい。どうすれば同じことができますか?c/C++コードからLinuxユーザーの実行時間を変更する
私はLinuxユーザー "abc"からroot以外のユーザーであるc/C++バイナリを実行しています。 c/C++コードの中で、特定のタスクを実行するために "xyz"というユーザに切り替えて、 "abc"の特権を取り戻したいと思います。
Linuxユーザーの実行時間をc/C++コードから変更したい。どうすれば同じことができますか?c/C++コードからLinuxユーザーの実行時間を変更する
私はLinuxユーザー "abc"からroot以外のユーザーであるc/C++バイナリを実行しています。 c/C++コードの中で、特定のタスクを実行するために "xyz"というユーザに切り替えて、 "abc"の特権を取り戻したいと思います。
セキュリティホールと同じように、ユーザーIDを(ルートでない限り)任意に変更することはできません。ただし、ユーザIDを、問題の実行可能ファイルを所有するユーザのユーザIDに(特にの実行者であるを実行しているユーザではなく)切り替えることができます。これは関数setuid()
です。これを動作させるには、プログラム自体にsetuid
フラグを設定する必要があります。
ウィキペディアは 'setgid'について言及していますが、強調するために' setgid'をチェックすることを忘れないでください。多くのアプリケーションでは、グループのみの変更で十分です。 – Dummy00001
「同じ」ですか??それとも...? –