dbusとpolicykitを使用したルートタスク
ある時点で、私のアプリケーションは、/ etcにファイルを作成したり、ルート権限でコマンドを実行したりするなどの管理タスクを実行する必要があります。 私はQ&Dを行うことができることを知っています: os.popen("pkexec foo bar") しかし、これはそれを行うための予測されたクリーンな方法ではないことも知っています。セッションのような処理をするのではなく、常にパスワードを再入力する必要があるため、ユーザーにとってなんらかの煩わしさがあります。 認証のためのpythonの例を見つけたので、私は非常に楽観的でした。 これはすぐに機能する簡単な例です: import dbus bus = dbus.SystemBus() proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority') authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority') system_bus_name = bus.get_unique_name() subject = ('system-bus-name', {'name' : system_bus_name}) action_id = 'org.freedesktop.policykit.exec' details = {} flags = 1 # AllowUserInteraction flag cancellation_id = '' # No cancellation id …