GNU/Linux >> Linux の 問題 >  >> Linux

Linux で 1 つのスレッドの UID/GID のみを変更する

Linux 固有の setfsuid() / setfsgid() プロセスごとではなく、スレッドごとです。これらは、このユース ケース (ファイル サーバー) 用に特別に設計されています。

access() に注意してください それでも実際の uid と gid を使用してアクセスをチェックします。これは設計によるものです (「このバイナリを実行したユーザーがこのファイルへのアクセス権を持っている必要がありますか」という質問に答えることが意図されています)。 )。 setfsuid() の場合 / setfsgid() その場合は、要求された操作を試して、その時点でのアクセス許可がないために失敗したことを検出する必要があります。


1 つのスレッドだけの uid を変更するには、syscall を直接使用する必要があります:syscall(SYS_setresuid, ...); libc 関数 setresuid() は、(すべてのスレッドに送信する信号を使用して) すべてのスレッドに対してそれを同期します!


Linux
  1. Linuxサーバーのホスト名を変更する

  2. Linux でユーザー/グループの UID と GID を (正しく) 変更する方法

  3. Linuxでスレッドに名前を付ける方法は?

  1. Linuxでホスト名を変更する方法

  2. WINDOWS10をLINUXに変更する10の理由

  3. Linux Dropbox でアカウントを変更しますか?

  1. Linux – Linuxのファイルシステムはシリアル化を強制しますか?これは、ファイルシステムへの1つの変更のみが実際にいつでも発生することを意味しますか?

  2. Linuxでシェルを変更する方法

  3. Linuxの名前変更コマンド