Linuxでは、すべてのプロセスが独自のファイル記述子テーブルを保持し、開いているすべてのファイルとファイルのようなデバイスへの参照を保持します。このテーブルはカーネルによって管理されます。
特権のないユーザーが昇格したプロセスのファイル記述子テーブルのファイル記述子を変更して、ファイル記述子が別のファイルを指すようにすることは可能ですか?
プロセス1000はroot
として実行され、FD 0(stdin
)からFD 1(stdout
)まで継続的に読み取ります。プロセス1001はeve
として実行され、FD 1が/etc/sudoers
を指すようにPID 1000のファイル記述子テーブルを変更する必要があります。
これは可能ですか?
プロセスが開始されると、これは不可能です。言及したように、これを行う唯一の方法はリダイレクトを経由することですが、これはプロセス内ではなくbash内で行われるため(コメントで注記したとおり)、質問の解決策としては適合しません。