私はユーザーに代わってファイルを読み書きできるはずのRustで小さなWebアプリケーションを構築したいと考えています。ユーザーは自分のUNIX資格情報で認証し、アクセス可能なファイルのみを読み書きすることができます。アプリケーションスレッドのユーザーとグループを切り替えることは可能ですか?
私の最初のアイデアは、私にとって最も安全だと思われるが、アプリケーションスレッドのユーザーコンテキストを切り替えてそこにすべての読み取り/書き込みを行うことだろう。これは可能ですか?
これが可能であれば、パフォーマンスはどのように見えますか?私は、要求が来るたびにオペレーティングシステムのスレッドを生成すると考えていますが、非常に高いオーバーヘッドがあります。これを行うより良い方法はありますか?
本当に私のアプリケーション全体をrootとして実行し、権限を手動で確認するのは嫌いです。
私は私の答えを明確にしました。 GNU/Linuxでは、私はGNU(glibc)ユーザランドを持つLinuxカーネルを意味しました。他のlibcsは動作が異なるかもしれません。 glibcは、直接システムコールでUID/GIDの変更にうまく反応しないことがあります。 –