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?

Louis
fonte
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.

kraxor
fonte
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