[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash: changer d'utilisateur



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 root@localhost IDENTIFIED BY "";
./home/$USER/MedinTuxDist-V1.26-Utf8/set_bases/bin/set_bases
GRANT ALL ON *.* TO root@localhost IDENTIFIED BY "$fichtemp";
exit


je n'y suis pas encore , hein ?
;-)

pmd


Reply to: