Vous n'êtes pas identifié(e).
Bonjour,
Ayant une politique de sécurité stricte sur mes serveurs je voulais permettre à postgresql d'utiliser COPY dans un répertoire où seul le propriétaire et son groupe y ont accès.
A mon plus grand étonnement (j'ai testé sur une DEBIAN et une SUSE avec version de postgresql 8.4), lorsque l'utilisateur postgres n'est pas propriétaire du répertoire, le seul moyen de l'y faire accéder est de positionner les droits "other" du répertoire sur read/exec.
Je voulais simplement ajouter le groupe du répertoire à l'utilisateur postgres,mais COPY me renvoie l'erreur Permission non accordée alors que ce groupe a bien les droit en lecture/exécution.
Dans la doc il est noté qu'il suffit que l'utilisateur postgres possède les droits sur le chemin et le fichier pour que COPY fonctionne. Mais apriori ça ne fonctionne pas avec les droits hérité d'un groupe...
Avez déjà entendu parlé de ce problème ? Savez-vous le résoudre ?
Merci par avance.
Hors ligne
Testé et non reproduit. Sur mon poste, le serveur postgres tourne en tant qu'utilisateur système marc.
$ groups
games network video audio camera users
$ sudo chmod -R 050 /tmp/test_droits/
$ ls -al /tmp/test_droits/
total 20
d---r-x--- 2 root games 4096 3 mars 16:31 .
drwxrwxrwt 20 marc 1000 12288 3 mars 16:33 ..
----r-x--- 1 root games 80 3 mars 16:31 fic_copy
=> Les fichiers appartiennent à root, le répertoire aussi. Mais mon groupe a le droit de lire et exécuter le répertoire (donc rentrer dedans et y faire une liste) et le fichier.
$ psql
psql (9.0.3)
Type "help" for help.
marc=# COPY test from '/tmp/test_droits/fic_copy';
COPY 10
=> Pouvez-vous faire
- un 'groups' de l'utilisateur exécutant postgres
- un ls -al du répertoire et fichier à charger ?
Marc.
Hors ligne
Merci pour votre réponse.
Je viens de trouver le problème .... C'était tout bête ....
Tout les droits et groupes étaient bien positionnés, mais pour que le serveur postgres prenne en compte son appartenance à un nouveau groupe il fallait le redémarrer ...
Merci encore.
Hors ligne