Cómo ejecutar un comando como otro usuario en Linux

A veces necesitas ejecutar algo con la identidad de otro usuario (por permisos o para probar). Linux ofrece sudo -u y su.

Con sudo -u (recomendado)

sudo -u juan comando

Ejecuta ese comando como el usuario juan. Por ejemplo, crear un archivo como el usuario del servidor web:

sudo -u www-data touch /var/www/prueba.txt

Abrir una shell como otro usuario

sudo -u juan -i        # sesión interactiva como juan
# o con su
su - juan

su - juan pide la contraseña de juan; sudo -u usa tu permiso sudo (más cómodo en administración).

Ejecutar como root

sudo comando          # como root, puntualmente
sudo -i               # shell de root

Preguntas frecuentes

¿su o sudo -u?

sudo -u aprovecha tus privilegios sin conocer la contraseña del otro usuario; su requiere la contraseña de destino. En administración se prefiere sudo.

¿Cómo vuelvo a mi usuario?

Escribe exit para salir de la shell del otro usuario y volver a la tuya.