¿Cómo iniciar sesión como usuario diferente dentro del script de Shell y ejecutar un conjunto de comandos?

¿Cómo iniciar sesión como usuario diferente dentro del script de Shell y ejecutar un conjunto de comandos?

Mi requisito es iniciar sesión como un usuario diferente, lo que requiere autenticación de contraseña y ejecutar algunos comandos como ese usuario dentro de un script de shell que ejecuto desde mi cuenta de usuario.

Ejemplo: el usuario1 está ejecutando el script. El requisito es iniciar sesión como usuario2 usando una contraseña y ejecutar un conjunto de comandos usando un único script de shell.

Respuesta1

Puedes utilizar varias formas:

  1. Usando su. A través de su puedes ejecutar el comando de esta manera:

su user -c "command"

o

su - user -c "command"

la diferencia es que cuando tienes Dash obtendrás el entorno del usuario objetivo. Con este comando se le pedirá la contraseña del usuario objetivo.

  1. Usando sudo:

sudo -u user "command"

Con este comando lo ejecutas con o sin contraseña (tu contraseña)

  1. Usando ssh:

Con ssh puedes ejecutar el comando con contraseña para el usuario, contraseña para la clave (si corresponde)

ssh user@localhost "command"

PD: También existen otros métodos posibles que rara vez son posibles como rsh

Respuesta2

El uso del comando su [username]le permite ejecutar un comando en el contexto de ese usuario, desde la ubicación actual. El uso del siguiente comando su - [username]lo llevará al directorio de inicio de ese usuario. Si omites el nombre de usuario, estás cambiando a root.

información relacionada