script à su avec mot de passe dans le script sans racine

8

J'ai scénarisé un processus qui implique la mise à jour de liens symboliques sur des fichiers situés sur 3 machines différentes. Sur ces machines, il y a 4 utilisateurs chacun, qui ont chacun besoin d'avoir ces liens mis à jour.

En utilisant su, existe-t-il un moyen de passer l'argument du mot de passe à la commande sur une seule ligne, sans appeler sudo car les utilisateurs n'auront pas de droits d'administrateur?

Ma seule solution alternative à ce stade est de faire le tour, mais j'aimerais pouvoir le faire sans codage en dur dans un tas d'hôtes / IPS.

Triplell89
la source

Réponses:

3

Vous pouvez diriger le mot de passe vers su comme ceci:

echo pa$$w0rd | su -c whoami user_1
gogators
la source
1
Obtenir l'erreur "Standard in must a tty"
Triplell89
Utilisez-vous ssh? Essayez l'option -t pour ssh.
gogators
@KevinVW, je ne vois pas l'option -t dans su.
maestromani
Le -t est pour ssh, pas su. Si force un pseudo-tty pour que su puisse lire le mot de passe depuis stdin.
gogators