2012-03-10 10 views
3

私が開発しているPython GUIアプリケーション内で特権をエスカレートする方法を探しています。私の望むモデルはGUFWです。私はあなたがルートとしてメインプログラムを実行する必要はありませんが、あなたが "rooty"何かをするとき、あなたはそれを "ロック解除"する必要があります。Pythonスクリプトで特権をエスケープする

ユーザーのホームディレクトリツリーまたは/ usr(ルートの仰角が必要)のディレクトリに保存する必要のあるテキストファイルを開発するプログラムがあります。

プログラムを実行しているユーザーとは異なるユーザー(この場合はroot)にファイルを保存する必要がある場合は、ルートとしてプログラムを実行する必要はありません。私は、可能な場合、Pythonの内、プログラムでそれをすべてしたいと思っ

os.system('gksu cp /tmp/myfile /usr/systemdir/myfile') 

私は一時的な場所に保存など(BA)のshの呼び出しに戻す必要はありません。将来的には、単にファイルを作成するのではなく、ファイルの途中に何らかの追加が必要な操作が必要な場合があります。

また、保存操作が完了した後、私は秘密の秘密を解除したいと思っています。

誰かがチュートリアルやこのエンデバーのサンプルコードを教えてくれますか?何をしたい

よろしく、

Narnie

+0

ソリューションを見つけましたか? –

答えて

1

PolicyKitある - まさにこれを行うためのFreeDesktop仕様とソフトウェア。 http://ubuntuforums.org/showthread.php?t=1359397はPythonでこれを使用するためのチュートリアルとサンプルコードです(ただし、個人的にPolicyKitを使用していないにもかかわらず、それがどれほど良いかどうかは分かりません)。新しいdbusおよびglibでは、古いpython-dbusバインディングの代わりにGObjectイントロスペクション(from gi.repository import DBus)を使用することになり、サンプルコードと比較してフローオンの変更がほとんど確実に行われることに注意してください。

+0

ubuntuforumの男が言っているように、ドキュメントは本当にこれを望んでいます。 DBusは私にとって大きな謎であり、PYGobjectのドキュメンテーションも希少ですが、私はその例を見出しました。私はGTK3に移行して以来、恐れています。Python-dbusからPyGobjectイントロスペクションまで、手持ちと翻訳が少し必要です。私はフォーラムを通して仕事をしようとしていますが、別の不完全なdbusチュートリアルにあなたを送ります。私は水の上に私の頭を保持しようとしていない...私はより長いシュノーケルを探しています! – narnie

関連する問題