#1 Le 20/08/2012, à 13:06
- R2D2-Ubuntu
Help problème de script avec changement d'user
Bonjour à tous,
Alors voilà mon problème est de taille :
Je suis actuellement en train d'installer postgresql grâce aux sources (je ne veux pas utiliser les dépots ubuntu).
Je lance les commandes suivantes à la main :
(Les variables sont bien placées et le user postgres est bien créé)
su $pguser
$POSTGRES_HOME/bin/initdb -D $POSTGRES_HOME/data
$POSTGRES_HOME/bin/postgres -D $POSTGRES_HOME/data 2>&1 &
sleep 30
$POSTGRES_HOME/bin/createuser -P nomDuUser
$POSTGRES_HOME/bin/createdb maBD
etc...
Tout fonctionne bien.
Cependant lorsque je le met dans un script sh : configPostgres.sh et que je le lance avec la commande sh postgres.sh, rien ne fonctionne et je n'ai rien qui s'affiche au niveau du terminal. Hormis la demande du mot de passe pour l'user postgres.
Ma question est la suivante :
L'intégralité des scripts est lancé en sudo, j'aimerais pouvoir lancer des commandes en utilisateur postgres tout en gardant le répertoire courant et les variables que j'ai définies dans un fichier ( Je ne comprend pas pourquoi mes variables de /etc/environment ne sont pas prises en compte.
Merci par avance, j'espère que j'ai été clair car ce n'est pas évident d'expliquer.
J'ai testé sudo -u postgres 'commande' , su postgres -c 'commandes' mais cela ne fonctionne pas car il ne garde pas le répertoire courant et mes variables ne sont pas conservées (variables étant dans le répertoire courant...)
Dernière modification par R2D2-Ubuntu (Le 20/08/2012, à 16:24)
Hors ligne
#2 Le 20/08/2012, à 17:07
- vince gakusei
Re : Help problème de script avec changement d'user
ce ne serait pas possible de renseigner tes variables à l'intérieur du script? comme ça tu serais sûr qu'elles seraient préservées.
Dernière modification par vince gakusei (Le 20/08/2012, à 17:07)
Hors ligne
#3 Le 21/08/2012, à 08:51
- credenhill
Re : Help problème de script avec changement d'user
hello
pour que les commandes soient exécutées par le su utiliser l'option -c
su $pguser -c "$POSTGRES_HOME/bin/initdb -D $POSTGRES_HOME/data
$POSTGRES_HOME/bin/postgres -D $POSTGRES_HOME/data 2>&1 &
sleep 30
$POSTGRES_HOME/bin/createuser -P nomDuUser
$POSTGRES_HOME/bin/createdb maBD
..."
Hors ligne