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


17

Existe uma maneira de iniciar um aplicativo durante a inicialização em uma determinada conta de usuário?

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

Nota: não quero que o aplicativo inicie após o login de um usuário, mas quando o computador iniciar.


Deseja que o aplicativo inicie antes do login na janela de login?
precisa saber é o seguinte

@ Martin: Bem, isso realmente não importa ... Estou usando o Apache como exemplo aqui. Quando começa?
Nathan Osman

Respostas:


13

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

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

Este comando será executado como usuário root e sudoserá suspenso no usuário "oli". Obviamente, altere o usuário e o comando para seus propósitos.

Devo acrescentar que existem pelo menos uma dúzia de maneiras de fazer exatamente isso ... Mas, na minha experiência, todas são em grande parte idênticas. Aqui está um exemplo inicial usando sua setuidestrofe:

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

setuid oli
respawn

exec /full/path/to/application

Sugiro que o exemplo
waltinator 28/09/11

Eu recebosudo: unknown group: 1004
ThorSummoner 4/04

Além disso, picar : Hora de atualizar a linha sobre o iniciante.
Muru

@muru eu vou. Mas o grupo não é obrigatório. O sudo usará o grupo padrão do usuário especificado .
Oli

Melhor editá-lo, então. Esse comando está errado há três anos desde que alguém o melhorou ! : D
muru

1

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>"

Se você precisar de um shell de login, o equivalente é sudo -i -u ....
Muru
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.