web-dev-qa-db-ja.com

特権を持たないユーザーが昇格されたプロセスのファイル記述子テーブルを変更できますか?

Linuxでは、すべてのプロセスが独自のファイル記述子テーブルを保持し、開いているすべてのファイルとファイルのようなデバイスへの参照を保持します。このテーブルはカーネルによって管理されます。

特権のないユーザーが昇格したプロセスのファイル記述子テーブルのファイル記述子を変更して、ファイル記述子が別のファイルを指すようにすることは可能ですか?

実用的な例

プロセス1000はrootとして実行され、FD 0(stdin)からFD 1(stdout)まで継続的に読み取ります。プロセス1001はeveとして実行され、FD 1が/etc/sudoersを指すようにPID 1000のファイル記述子テーブルを変更する必要があります。

これは可能ですか?

5
MechMK1

プロセスが開始されると、これは不可能です。言及したように、これを行う唯一の方法はリダイレクトを経由することですが、これはプロセス内ではなくbash内で行われるため(コメントで注記したとおり)、質問の解決策としては適合しません。

1
J.J