
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:
- 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.
- Usando
sudo
:
sudo -u user "command"
Con este comando lo ejecutas con o sin contraseña (tu contraseña)
- 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.