sudoフロントエンド(gksudoなど)を使用して、現在のプロセスの特権を昇格させることは可能ですか?私は次のことができることを知っています:
sudo cat /etc/passwd-
しかし、私はこれを行うことに興味があります:
sudo-become-root # magic function/command
cat /etc/passwd-
私はPythonで書いています。私のユースケースは、ユーザーとして実行されるプログラムがありますが、rootが所有する読み取り/書き込み用のファイルに遭遇する可能性があることです。パスワードの入力を求め、root権限を取得し、必要なことを実行してから、オプションで権限を再度削除したいと思います。
管理ロジックと非管理ロジックを別々のプロセスに分離し、管理プロセスをrootとして実行するだけでよいことはわかっています(ある程度の通信があれば、policykit / dbusがここに適しています)。しかし、私はもっと単純な(確かにもっと危険な)解決策を望んでいました。
Solarisのpprivをsudoで実行してから、現在のプロセスの特権を変更するようなものを考えています。これは、ハッキーですが実行可能な往復のようです。しかし、私が知る限り、Linuxはpprivを提供していません。
(これがまだ明らかではないことに驚いています。これは珍しいことではないようであり、新しいプロセスのエスカレーションよりも進行中のエスカレーションを可能にするセキュリティホールではないようです。)