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.

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" 

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.

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.