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?

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" 

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.