Defina uma ação do Policykit para o Upstart [closed]

3

Estou tentando fazer com que algum usuário inicie, pare e recarregue serviços usando a interface Upstart do udev. Estou usando o Ubuntu 10.04.

Eu criei o arquivo /usr/share/polkit-1/actions/com.ubuntu.Upstart0_6.Job.policy

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
  <vendor>UXITIC</vendor>
  <vendor_url>http://citius.usc.es/</vendor_url>
  <icon_name>gdm</icon_name>

  <action id="com.ubuntu.Upstart0_6.Job.Stop">
    <_description>Stops a service</_description>
    <_message>Privileges are required to stop a service.</_message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>
</policyconfig>

E também o arquivo de autoridade correspondente /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-start-and-stop-services.pkla

[Stop services]
Identity=unix-user:jorge
Action=com.ubuntu.Upstart_0.6.Job.Stop
ResultAny=no
ResultInactive=no
ResultActive=auth_self

Mas quando tento parar um serviço, recebo o acesso negado: (

jorge$ dbus-send --print-reply --system --dest=com.ubuntu.Upstart /com/ubuntu/Upstart/jobs/ssh com.ubuntu.Upstart0_6.Job.Stop array:string:'' boolean:true
Error org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 1 matched rules; type="method_call", sender=":1.452" (uid=1021 pid=28234 comm="dbus-send) interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init"))
    
por gentakojima 22.03.2012 / 11:14

0 respostas