マルチスレッド プロセスで 1 つのスレッドのみの UID/GID を変更する方法はありますか?
この理由は、ファイル サービス アプリケーションを作成するためです。呼び出し元の uid/gid が正しいユーザーに設定されていない限り、ACL とクォータは適用されず、新しいファイル/ディレクトリは正しい uid/gid で作成されません。
通常、ネットワーク アプリケーションは最初に自分自身を fork() し、各ユーザー リクエストを個別のプロセスで処理します。共有データが必要な場合は、何らかの共有メモリを経由する必要があります。ただし、たとえば、FUSE (Linux ユーザー ファイルシステム) はデフォルトでマルチスレッドを使用し、Python バインディングと組み合わせてフォーク モデルを使用するのは現実的ではありません。
プロセス全体の「一貫した」UID は POSIX 標準に従っているようですが、古い Linux は POSIX に従っておらず、スレッドごとに異なる uid を許可していました。新しいカーネルは POSIX に従っているようですが、古い「壊れた」動作を許可する方法はありますか?