Executar comando como usuário do “sistema” do Linux (shell = / bin / false)

29

Criei um usuário de "sistema" no Ubuntu 11.04 ( adduser --system) para executar determinados trabalhos cron, mas às vezes quero testar as coisas executando manualmente comandos como esse usuário. Qual é a maneira mais fácil de fazer isso?

sunão funciona, porque o usuário tem /bin/falsecomo shell (o que é bom para o cron). Alterei manualmente o shell para /bin/bashfazer meus testes e depois o alterei novamente, mas gostaria de saber se existe uma maneira mais fácil.

EMP
fonte

Respostas:

41

Eu uso su - targetuser -s /bin/bashde um shell raiz.

Para execução direta de comando, use -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
dmourati
fonte
Isso funciona, obrigado! Como eu perdi a opção -s?
EMP
3
você também pode usar uma opção -c "your_command_here" para passar o comando que deseja executar e aguardar o shell e digitar em um novo prompt.
Dmourati 28/05
2

Use sudo. Isso funcionará mesmo se o usuário não tiver um shell real.

eirescot
fonte