Como executar um aplicativo na inicialização como um determinado usuário?

14

Existe uma maneira de ter uma inicialização do aplicativo durante a inicialização sob uma determinada conta de usuário?

Por exemplo, eu gostaria de ter a_small_app executado na conta de usuário bob (que está no grupo bobsgroup ). Eu adiciono algo a /etc/init.d ?

Observação: não quero que o aplicativo inicie depois que um usuário fizer login , mas sim quando o computador for iniciado.

    
por Nathan Osman 05.01.2011 / 23:14

2 respostas

11

Um método agnóstico do sistema de inicialização. Você pode usar isso em /etc/rc.local , um script /etc/init.d/... , um arquivo de configuração Upstart e provavelmente uma configuração systemd também.

sudo -u oli /full/path/to/application

Este comando será executado como usuário root e sudo será baixado para o usuário "oli". Obviamente, mude o usuário e o comando para seus propósitos.

Devo acrescentar que há pelo menos uma dúzia de maneiras de fazer exatamente isso ... Mas, na minha experiência, elas são todas praticamente iguais em efeito. Aqui está um exemplo inicial usando sua setuid stanza:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application
    
por Oli 06.01.2011 / 00:45
0

Parece que a primeira resposta não funciona mais no Ubuntu 14.10.

É assim que eu faço lá (coloque em /etc/rc.local)

su <username> - -c "<command>"
    
por vrodic 19.01.2015 / 11:19

Tags