ユーザーwwwとして実行するWebアプリケーションがあります。ただし、ある時点で、ユーザー Alice と Bob に代わって Linux ファイルシステムからファイルを読み取る必要があります。
これを行う 1 つの方法は、シェル (Runtime.exec()) を起動し、C の setuid 実行可能ファイルを呼び出してユーザー ID を変更し、ファイルを読み取ることです。
JNI でこれを達成する方法はありますか (Web アプリは root ではなく www として実行する必要があります)。Linux でネイティブ メソッドを呼び出す Java JNI プログラムを作成しようとしました (ルートがこれらのネイティブ メソッドを所有し、setuid ビットを設定しました)。しかし、Java プログラムを root として実行しない限り、ユーザー ID を切り替えることはできません。私が見逃しているものはありますか?これを達成する方法はありますか?
ありがとう!