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

Re: bash: changer d'utilisateur



Le Saturday 02 February 2008 19:09:24 mouss, vous avez écrit :
> debianpmd wrote:
> > 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 faut faire un script à lancer en tant que root et tu lances ce script
> dans la ligne "su".
> su - root /chemin/vers/ton/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
>
> euh... mettre le password riit de mysql dans /tmp/, c'est pas vraiment
> conseillée.
>
> mais pourquoi le script devrait-il changer le pass root mysql? A moins
> de vouloir mettre le pass sur N machines, ça n'a pas trop de sens. et
> dans le cas de N machines, il faut avoir un script qui ne fait que ça.
> diviser pour règner (rien n'empêche de le lancer à partir
>
> > 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
>
> root a deja tous les droits. il ne faut pas utiliser ce user pour les
> taches "communes". il faut créer un autre utilisateur dédié à la tache.
>
> > GRANT ALL ON *.* TO root@localhost IDENTIFIED BY "$fichtemp";
> > exit
> >
> >
> > je n'y suis pas encore , hein ?

c'est parce que c'est pour une première installation de mysql et du logiciel.
pmd


Reply to: