Syntaxe de la commande su + password en batch [Résolu/Fermé]

Signaler
-
 coucouille -
Bonjour,

Sur UNIX je dois faire le ménage (pour gagner de l'espace) dans un espace professionnel et ce pour 18 users différents.
Je ne peux être root et donc il faut que je change de nom de user 18 fois pour faire les même find et rm pour chaque environnement.
par conséquent je ne connaîs pas la syntaxe de la commande su afin de donner le password pour chaque user.

Mon idée c'est de mettre dans un fichier "user_mdpass " à part le user,mot-de-passe

faire une boucle for i in `cat user_mdpass `
su .....

find .....rm...

done

Quelle est la syntaxe pour donner le mot de passe ?

Merci de votre retour.

3 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 836
Salut,

Tu pourrais essayer avec la commande "expect" en appelant un script (expect) et en lui passant le nom et le password en argument. Voilà un petit bout de script qui marche chez moi. Le script ne fait rien d'autre que se connecter sous l'identité passer en 1er argument avec le mot de passe passé en 2nd argument, une fois connecté, on affiche le répertoire où on se trouve, on liste ledit répertoire et on quitte...
#!/usr/bin/expect -f

set force_conservative 1 ;

set timeout 2

set name [lindex $argv 0]
set pass [lindex $argv 1]

spawn su - ${name}
expect "password:\r"
send -- "$pass\r"
expect -gl "\\\[*]\$*"
send_user  "\rJe suis dans le répertoire : "
send -- "pwd\r"
expect -gl "\\\[*]\$*"
send -- "ls -l\r"
expect -gl "\\\[*]\$*"
exit
A adapter ;-))
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Bonjour,

Merci pour ton retour et le soutien de tous. Je vais adapter ton script pour voir si cela convient
et te fera un retour dès résultat.

Cordialement mon ami.
Messages postés
31069
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
26 février 2021
7 411
bonsoir,

sur la commande su il n'est pas possible de passer un mot de passe, le shell va donc poser la question.

et je me rappelle avoir essayé de rediriger le user input mais sans succès. J'ai abandonné pour executer les script en les lancant à partir de root.

cdt
Bonjour,

le principe de stocker des mots de passes, est completement contre les regles de securités de bases dans un environnement professionnel;
mais tu peux utiliser des outils tels que :
- sudo : te permet de devenir n'importe quel user. ( valable sous linux/Sun solaris/HP UX/ AIX ) freeware
- rbac : sous solaris au moins ( inclus dans l'OS de base a partir de la version 9)

Ces 2 outils te permettent de devenir n'importe quel user, et d'effectuer des commandes comme si c'etait eux qui les effectues. mais doivent etre configurés par un administrateur systeme.