Vous n'êtes pas identifié(e).

#1 24/06/2011 18:30:01

hannibal
Membre

[QST] connexion avec fichier pgpass

Bonjour a tous,

j'ai une interface php qui doit pouvoir faire des backup de base de donnée.
Pour ce faire je me suis donc naturellement orienté vers l'utilitaire pg_dump.
Pour le mot de passe, j'ai vue qu'il existait un fichier .pgpass
http://docs.postgresql.fr/9.0/libpq-pgpass.html


j'ai donc tout d'abort testé de mettre le .pgpass dans mon home (je suis root)
voici le fichier pgpass

localhost:5432:*:postgres:monMotDePasse

mais malheuresement cela ne fonctionne pas


psql -U postgres
psql: FATAL:  authentification par mot de passe échouée pour l'utilisateur  « postgres »
mot de passe récupéré dans le fichier fichier « /root/.pgpass »

Je pense que postgres n'arrive pas a acceder au fichier (vue qu'il est dans /root)
Donc comment faire pour placé le pgpass a un autre emplacement ?
(j'ai bien vue  que la variable PGPASSFILE permettait ceci, mais comment la modifier ? )
Merci d'avance pour votre aide wink

Dernière modification par hannibal (24/06/2011 18:32:12)

Hors ligne

#2 24/06/2011 19:05:29

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Quel utilisateur unix exécute la commande pg_dump ?


Guillaume.

Hors ligne

#3 24/06/2011 19:53:06

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

mon utilisateur apache2 (son accès est bien sécurisé wink )
(il execute un script qui fait le pg_dump via la commande sudo )

Dernière modification par hannibal (24/06/2011 19:53:54)

Hors ligne

#4 24/06/2011 19:56:46

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Donc ce n'est pas apache2 qui exécute la commande mais l'utilisateur pour qui il essaie de se faire passer. C'est cet utilisateur qui doit avoir le fichier .pgpass dans son répertoire personnel.


Guillaume.

Hors ligne

#5 24/06/2011 20:02:12

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

non, je ne crois pas, car sudo donne les droit root mais l'utilisateur qui utilise sudo ne devient pas root.
( et comme je l'ai dit plus haut, si je place mon pgpass dans mon /root , cela ne fonctionne pas )

Hors ligne

#6 24/06/2011 20:17:35

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

non, je ne crois pas, car sudo donne les droit root mais l'utilisateur qui utilise sudo ne devient pas root.

Si. Il le devient temporairement, le temps de l'exécution de la commande. Le fichier /root/.pgpass a bien les droits 600 ?


Guillaume.

Hors ligne

#7 24/06/2011 20:19:08

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Oh, et pour infos, un .pgpass dans mon /root fonctionne parfaitement. Évidemment, ce fichier a les droits 600, a pour propriétaire et groupe root et le répertoire personnel de mon utilisateur root est bien /root.


Guillaume.

Hors ligne

#8 24/06/2011 20:38:29

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

bon j'ai avancé, j'ai créé le fichier .pgpass dans le home de mon user apache et maintenant sur je fait un

su -c "/usr/local/pgsql/bin/pg_dump --create --inserts -U postgres toto" apache2

Sa fonctionne nickel, par contre, dans mon fichier php je vais ceci:

echo shell_exec('sudo /usr/local/pgsql/bin/pg_dump --create --inserts -U postgres toto');

Et la j'ai rien pas un message d'erreur, rien ......

Hors ligne

#9 24/06/2011 20:43:22

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

Bon tu dois avoir raison, si je vire mon sudo sa fonctionne ....
donc pourquoi sa ne fonctionne pas ????
aucune idée voici les droits sur mon fichier .pgpass dans mon /root

-rw-------  1 root root    38 24 juin  18:27 .pgpass

Hors ligne

#10 24/06/2011 20:47:46

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Une possibilité serait que le pg_dump ne s'exécute pas en tant qu'utilisateur root. Ça dépend en fait de la configuration de sudo. Ou alors le répertoire personnel de root n'est pas /root sur ton système.


Guillaume.

Hors ligne

#11 24/06/2011 20:52:40

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

gleu a écrit :

Une possibilité serait que le pg_dump ne s'exécute pas en tant qu'utilisateur root. Ça dépend en fait de la configuration de sudo.

Je peux faire quoi pour ça ?
De toute façon même une connexion basique  ( psql -U postgres), le fichier pgpass de mon /root ne fonctionne pas donc .....
Je pense que si on trouve pour cela, on trouve pour tout wink

sinon le home de mon root est bien /root wink

Hors ligne

#12 25/06/2011 09:14:31

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Je peux faire quoi pour ça ?

En n'utilisant pas sudo.


Guillaume.

Hors ligne

#13 25/06/2011 11:12:32

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

oui, je me doute, mais dans ce cas le fichier ne peux plus etre dans /root wink

Hors ligne

#14 25/06/2011 11:41:37

gleu
Administrateur

Re : [QST] connexion avec fichier pgpass

Non, il devra être dans le répertoire personnel de l'utilisateur apache.


Guillaume.

Hors ligne

#15 25/06/2011 12:11:44

hannibal
Membre

Re : [QST] connexion avec fichier pgpass

bon, j'ai fait sans sudo wink
Merci pour ton aide wink

Hors ligne

Pied de page des forums