Como habilitar trabalhos de usuário no Upstart

Como habilitar trabalhos de usuário no Upstart

Estou tentando permitir que usuários não privilegiados executem trabalhos iniciais em seu $HOME/.initdiretório.

O livro de receitas Upstart menciona que você devehabilite isso, mas não menciona como fazê-lo. A frustração pode ser resumida porComentário de @ropez:

a documentação não parece mencionarcomopara habilitar jobs do usuário, apenas menciona o arquivo de configuração, e que o administrador deve fazer isso

Ainda estou recebendo este erro quando tento fazer startum trabalho como usuário não privilegiado:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.70"

O mais próximo que encontrei até agora é uma essência dealguém corrigiu o Upstart.conf, mas parece muito mais curto do que o que vejo no Ubuntu 12.04 que estou usando.

Existe uma maneira canônica e bem definida de fazer isso?

PS estou cienterelacionado questões. No entanto, nenhuma de suas respostas mostra realmente como fazer isso.

Responder1

A configuração do Upstart "corrigida" à qual você vincula é a mesma que a configuração do Upstart que foi enviada comIniciante 1.3(denão é possível começar a executar o trabalho do usuário), então eu diria que essa é a maneira mais simples de ativar trabalhos de usuário.

Responder2

Esta solução funciona para Upstart 1.5 no Ubuntu 12.04.

Abra a configuração inicial:

sudo vim /etc/dbus-1/system.d/Upstart.conf

Comente a defaultpolítica, ou seja

<policy context="default">
    ...
</policy>

e cole o bloco deeste patch:

<!--
Allow any user to invoke all of the methods on Upstart, its jobs
or their instances, and to get and set properties - since Upstart
isolates commands by user.
 -->
<policy context="default">
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="org.freedesktop.DBus.Introspectable" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="org.freedesktop.DBus.Properties" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6.Job" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6.Instance" />
</policy>

informação relacionada