Le Saturday 02 February 2008 11:54:56 mouss, vous avez écrit : > debianpmd wrote: > > bonjour, je cherche dans un bash à passer dans un shell fils en root et > > d'y exécuter des commandes en root. > > par exemple : > > #!/bin/bash > > > > echo "rentrez votre mot de passe" > > su - > > > > cat /etc/esound/esd.conf > > > > > > > > quoique je fasse, je reste bloqué sur > > debian # > > et la commande cat ne s'exécute pas > > bien su "forke" un shell et tu est dedans. les commandes d'après seront > lancées après exit (mais pas en tant que root!). > > essaye avec > > su - root /bin/cat /etc/esound/esd.conf > > > mais c'est quoi le but de la manoeuvre? > > > Je ne m'en sort pas. > > Que dois je faire svp ? > > Merci > > > > pmd merci de ta réponse.
bon en fait c'est pour passer en root dans ce script il décompresse le paquet il arrête mysql il permet de mettre un mot de passe mysql puis de passer en utilisation sans mot de passe puis de lancer le programme d'installation, puis de revenir en mysql normal. #!/bin/bash cd /home/$USER /usr/bin/p7zip -d MedinTuxDist-V1.26-Utf8.7z chown -R $USER MedinTuxDist-V1.26-Utf8 chmod -R 775 MedinTuxDist-V1.26-Utf8 echo "entrez votre mot de passe root" #on npasse en root su /etc/init.d/mysql stop #puis redémarrer en mode safe pour changer les tables d'autorisation su mysqld_safe --skip-grant-tables --skip-networking & mysql mysql #définir le mot de passe mysql fichtemp='tempfile 2>/dev/null' || fichtemp=/tmp/test$$ echo "choisissez un mot de passe mysql" 2> $fichtemp update user set password=password($fichtemp) where user="root" and host="localhost"; exit su /etc/init.d/mysql restart mysql -u root -p $fichtemp GRANT ALL ON *.* TO [EMAIL PROTECTED] IDENTIFIED BY ""; ./home/$USER/MedinTuxDist-V1.26-Utf8/set_bases/bin/set_bases GRANT ALL ON *.* TO [EMAIL PROTECTED] IDENTIFIED BY "$fichtemp"; exit je n'y suis pas encore , hein ? ;-) pmd

