Ejecute el comando como usuario del "sistema" de Linux (shell = / bin / false)

29

Creé un usuario de "sistema" en Ubuntu 11.04 ( adduser --system) para ejecutar ciertos trabajos cron, pero a veces quiero probar cosas ejecutando comandos manualmente como ese usuario. ¿Cuál es la forma más fácil de hacer esto?

suno funciona, porque el usuario tiene /bin/falsecomo shell (lo cual está bien para cron). He estado cambiando manualmente el shell para /bin/bashhacer mi prueba y luego volviéndolo a cambiar, pero me pregunto ¿hay alguna manera más fácil?

EMP
fuente

Respuestas:

41

Yo uso su - targetuser -s /bin/bashde una cáscara de raíz.

Para la ejecución directa de comandos, use -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
dmourati
fuente
Eso funciona, gracias! ¿Cómo me perdí la opción -s?
EMP
3
También puede agregar una opción -c "your_command_here" para pasar el comando que desea ejecutar en lugar de esperar el shell y luego escribirlo en un nuevo indicador.
dmourati
2

Usa sudo. Esto funcionará incluso si el usuario no tiene un shell real.

Eirescot
fuente