2016-06-16 5 views
0

Linuxユーザーの実行時間をc/C++コードから変更したい。どうすれば同じことができますか?c/C++コードからLinuxユーザーの実行時間を変更する

私はLinuxユーザー "abc"からroot以外のユーザーであるc/C++バイナリを実行しています。 c/C++コードの中で、特定のタスクを実行するために "xyz"というユーザに切り替えて、 "abc"の特権を取り戻したいと思います。

+0

「同じ」ですか??それとも...? –

答えて

5

セキュリティホールと同じように、ユーザーIDを(ルートでない限り)任意に変更することはできません。ただし、ユーザIDを、問題の実行可能ファイルを所有するユーザのユーザIDに(特にの実行者であるを実行しているユーザではなく)切り替えることができます。これは関数setuid()です。これを動作させるには、プログラム自体にsetuidフラグを設定する必要があります。

詳細については、hereおよびhereを参照してください。

+0

ウィキペディアは 'setgid'について言及していますが、強調するために' setgid'をチェックすることを忘れないでください。多くのアプリケーションでは、グループのみの変更で十分です。 – Dummy00001