6 votes

Exécuter des commandes en tant qu'autre utilisateur sur leur machine via ssh ?

Dans le cadre de mon flux de travail normal, je me connecte à la machine d'un autre utilisateur, je change d'utilisateur, j'exécute une commande, puis je me déconnecte à nouveau de ma propre machine :

ssh hostname
sudo su user
runcommand
exit
exit

Existe-t-il un moyen de réduire cette commande à une seule ligne ? par exemple

ssh --someflags "runcommand"

J'ai essayé, mais on me demande le mot de passe de l'autre utilisateur, que je n'ai pas :

sudo ssh user@hostnme "runcommand"

9voto

user272735 Points 121

Avez-vous un utilisateur sur tous les ordinateurs distants ? Je suppose que cela devrait fonctionner, mais je ne suis pas sûr d'avoir bien compris votre configuration.

ssh youruser@hostname "sudo -u remoteuser runcommand"

2voto

middus Points 7613

Il est fréquent qu'un terminal soit également nécessaire. La méthode suivante devrait fonctionner dans ce cas :

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X