1 votes

PDFTK : combiner des fichiers en tant qu'utilisateur root

J'ai un site web qui utilise PDFTK.

Mon site permet aux utilisateurs d'envoyer des fichiers PDF via un formulaire, puis, en cliquant sur un bouton, lance une combinaison de tous les fichiers pour en créer un.

Lors de l'envoi de mes fichiers, mon utilisateur apache est assigné.

Sauf que lorsque je lance la ligne de commande, cela ne fonctionne pas. Si je passe tous mes fichiers en utilisateur et groupe root, la ligne de commande passe. Sauf que j'ai une action manuelle pour faire ce qui n'est pas possible pour le bon fonctionnement de mon site.

Voici ma commande avec l'erreur :

$ /snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
Error: Unable to find file.
Error: Failed to open PDF file:
   upload/418/2018/fichier1.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.

C'est une bonne commande mais avec chown :

chown -R root:root upload/418/2018
/snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask

Quel pourrait être le problème ici ?

1voto

Rinzwind Points 270388

Cette commande qui fonctionne selon vous :

chown -R root:root upload/418/2018
/snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask

était précédé d'un changement de répertoire (quelque chose comme cd /var/www/html/ ).

Celui-ci ne l'a pas fait :

$ /snap/bin/pdftk "upload/418/2018/fichier1.pdf" cat output upload/418/2018/fichiercombine.pdf dont_ask
Error: Unable to find file.
Error: Failed to open PDF file:
   upload/418/2018/fichier1.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.

... donc essayera de l'exécuter à partir d'un répertoire qui commence là où vous avez mis upload/ L'avis ne se plaint pas des autorisations, donc je suppose que ce n'est pas le problème. Il indique plutôt "fichier non trouvé". Je pense donc que votre deuxième commande n'est pas exécutée dans le bon répertoire. S'il s'agit d'un problème d'autorisation : ajoutez l'utilisateur apache au groupe qui possède les droits suivants pdftk ou, si le groupe appartient à root, changez le groupe pour ce groupe en un nouveau groupe et ajoutez-y apache.

Si c'est un problème de répertoire, la solution la plus simple serait d'utiliser des chemins absolus et non des chemins relatifs. Ou ajouter un cd /var/www/html && devant la commande où vous remplacez le /var/www/html pour ce qu'elle doit être.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X