Como executar um trabalho cron como um usuário específico?


15

Eu tenho alguns comandos que quero que sejam executados após a inicialização da máquina. Um usuário não deve ter que fazer login ou algo para executar.

Encontrei esta ótima resposta sugerindo crontab com a @rebootpalavra - chave, mas ela será executada como root e eu gostaria de executar como um usuário específico criado para esses "serviços" (não os serviços reais do sistema).

Quais são as formas de obter o mesmo efeito com um determinado usuário?


Tente executar '$ su [nome de usuário] [comando]'
LittleByBlue 31/07

Respostas:


24

Você pode criar um crontab para o usuário específico da seguinte forma:

crontab -u <username> -e

Ou, mais simplesmente, você pode executar crontab -equando estiver logado como esse usuário.

Como alternativa, você pode prefixar seu comando no seu crontab (root) com sudo -u <username>para executar o comando como o usuário especificado.


Obrigado, não consegui fazê-lo funcionar com eles. Mas agora vejo que posso criar um crontab para qualquer pessoa. Os comandos acabaram funcionando bem como root no sudo. Eu não sabia que poderia usar o sudo lá (esperava que falhasse ao esperar por uma senha).
Louis

2
O @Louis sudonão exige uma senha quando você a invoca como root. Basicamente, você não está obtendo permissões, mas desistindo delas.
precisa saber é o seguinte

1
@kraxor - você pode simplesmente executar o crontab -e quando estiver logado como esse usuário. Eu acho que isso não está correto.
bhv
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.