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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] IDENTIFIED BY "$fichtemp";
exit
je n'y suis pas encore , hein ?
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]