web-dev-qa-db-fra.com

Problème avec la conversion par lots de .png en .pdf avec convert

convert /home/bill/TempScan/*.png  myfile.pdf

donne un message d'erreur:

convert-im6.q16: not authorized `myfile.pdf' @ error/constitute.c/WriteImage/1037.

Toute aide serait appréciée!

67
bill-lancaster

convert est un puissant outil de ligne de commande pour convertir les graphiques. Cela représenterait des risques pour la sécurité, en particulier lorsqu'il est utilisé avec un serveur Web. Dans les versions récentes d'Ubuntu, un fichier de stratégie est implémenté, dans lequel certaines utilisations de convert sont restreintes. Apparemment, ce fichier interdit par défaut de "convertir" plusieurs fichiers graphiques en un seul fichier PDF.

Le fichier de stratégie est /etc/ImageMagick-6/policy.xml. Vous pouvez modifier ce fichier en tant qu'utilisateur root pour modifier les stratégies.

Éliminer toutes les restrictions d'utilisation

Pour les utilisateurs de bureau qui n'exécutent pas de serveur Web, la suppression de ces restrictions peut suffire. Pour cela, on peut supprimer le fichier, mais il est préférable de "déplacer le fichier vers l'extérieur" en le renommant. Avec cette commande, vous renommez le fichier. En conséquence, toutes les stratégies sont levées, mais vous pouvez toujours revenir si nécessaire:

Sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout

Pour revenir à la situation d'origine, il suffit de renommer le nom d'origine:

Sudo mv /etc/ImageMagick-6/policy.xmlout /etc/ImageMagick-6/policy.xml

Éliminer uniquement la restriction de combinaison en PDF

Pour votre cas spécifique, gene_wood, dans un commentaire, a souligné la possibilité d'assouplir de manière sélective la stratégie d'utilisation des fichiers PDF en mettant en commentaire une ligne:

<policy domain="coder" rights="none" pattern="PDF" />

Modifiez le fichier et placez des marques de commentaire autour de cette ligne pour désactiver cette règle:

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

Si vous ne voulez pas éliminer toutes les politiques de sécurité, c'est la voie à suivre.

Clause de non-responsabilité: vous avez été averti que la suppression de ce fichier de stratégie supprime certaines stratégies de sécurité.

92
vanadium

Comme vanadium posted , vous devez changer la règle ImageMagick.

Sudo vim /etc/ImageMagick-6/policy.xml

et remplacer la ligne

<policy domain="coder" rights="none" pattern="PDF" />

avec

<policy domain="coder" rights="read|write" pattern="PDF" />

Si vous souhaitez uniquement autoriser l'écriture et non la lecture, vous pouvez également effacer la partie read| dans la ligne ci-dessus.


BTW, pour ceux qui s'intéressent à la vulnérabilité ImageMagick, voici 2 liens d’information:

21
abu_bua