Ejecutar un comando como usuario nologin

43

Recientemente configuré mi servidor para que mis usuarios 'virtuales' de suPHP no puedan iniciar sesión utilizando este artículo

Mi problema ahora es que antes, cuando ejecutaba un rakecomando para mi aplicación Ruby on Rails que se ejecutaba en el servidor, solía suentrar www-datay ejecutar el comando desde allí, obviamente ya no puedo hacerlo debido al nologin.

Entonces, como usuario root, ¿cómo puedo ejecutar comandos como otros usuarios, incluso si son nologin?

Tablemaker
fuente
Una forma es iniciar un shell para ese usuario (especificando explícitamente el shell): sudo -u www-data bashejecute sus comandos y cierre la sesión
cyberx86
@ cyberx86 Su solución funciona de maravilla, ¿podría enviarla como una respuesta para mí?

Respuestas:

50

Una forma es lanzar un shell para ese usuario (especificando explícitamente el shell):

sudo -u www-data bash 

Esto lanzará un shell (bash) como el usuario especificado. Luego puede ejecutar sus comandos y cerrar sesión (para volver a su shell anterior)

cyberx86
fuente
39

Como root puede usar su -s /bin/sh $user : la -sopción anula el shell configurado para el usuario.

Sergey Vlasov
fuente
1
Esto siempre parece un error para mí.
Funciona muy bien para mí, nunca tuve un problema. Al ejecutar scripts con necesidades de sintaxis bash / bin / bash en lugar de / bin / sh
ekerner