Syntaxe de la commande su + password en batch

Résolu/Fermé
coucouille - 28 oct. 2007 à 22:43
 coucouille - 29 oct. 2007 à 22:39
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.
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
28 oct. 2007 à 23:34
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
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.
0
jee pee Messages postés 40432 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 9 novembre 2024 9 417
28 oct. 2007 à 23:11
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
0
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.
0