回答:
@Tachyonsの提案に続いて、私は約LOTを調査pkexec
し、それが素晴らしいです!
はい、それはすべての要件を満たし、「ユニバーサルgksudo」に最も近いものだと思います。
つまり、pkexec
PolicyKitのコマンドラインフロントエンドです。2つの基本的な操作モードがあります。
と同じように実行するだけでsudo
、素敵なGUIプロンプトが表示されます。
$ pkexec rm -rf /
/usr/share/polkit-1/rules.d
、特定のアクションのみのルートアクセス、他のユーザーのパスワードは不要、特定のパスに制限されたアクセスなど、大量のカスタマイズとセキュリティ関連のオプションが許可されますなど。設定を微調整して微調整できます。より一般的な方法は、「ヘルパープログラム」を記述することです。このようなプログラムは、ユーザーにパスワードを要求します。たとえば、Zenityがインストールされていることが確実な場合は、それを使用できます。そうでない場合は、PythonまたはGUIと対話できる他の何かでヘルパープログラムを記述する必要があります。
( "askpass")および(stdin)オプションのsudo
マニュアルをお読みください。-A
-S
またsudo
、スクリプトから実行する場合は、-H
シミュレートするための(ホーム)オプションが必要であることを忘れないでくださいgksudo
。
この方法はうまく機能しますが、ヘルパープログラムを徹底的にテストして、バグがないことを確認する必要があります。
いいえ、root(または他のユーザー)の特権を取得する標準的な方法はありません。
できるだけ多くのシステムとの互換性を確保したい場合は、何らかの方法を想定せずに、特定のユーザーとしてスクリプトを実行する必要があることをユーザーに伝えてください。その後、スクリプトが適切な方法で実行されるようにシステムを構成するのはユーザー/管理者次第です。
su、sudo、ConsoleKitなどの最も一般的な認証システムの使用方法についていくつかの提案をするとよいでしょう。
polkit
はそうでしたが、ありがたいことに現在(以前のPolicyKit)は広く普及しており、標準と見なされています。