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

113
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!

bill-lancaster
la source

Réponses:

157

convertest 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 convertsont restreintes. Apparemment, ce fichier interdit par défaut de "convertir" plusieurs fichiers graphiques en un seul fichier PDF.

Le fichier de politique 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 de travail avec les fichiers PDF en commentant 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é.

vanadium
la source
Merci vanadium, j'ai renommé le fichier comme suggéré et cela a fonctionné à merveille.
Bill-Lancaster
4
Je suis allé dans le policy.xmlfichier et j'ai trouvé la ligne qui m'empêchait de combiner des pngfichiers en pdfs et l' ai commenté. Cette ligne était <policy domain="coder" rights="none" pattern="PDF" />si vous souhaitez laisser les autres règles intactes, mais permettez de travailler avec pdfs.
gene_wood
1
@gene_wood, merci: j'ai ajouté à l'article car il offre plus d'informations et d'options aux utilisateurs souhaitant être plus prudents dans l'élimination des restrictions.
vanadium
2
Ok, cela fonctionne dans Ubuntu 18.04 avec imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Je vous remercie.
Geppettvs D'Constanzo
La deuxième méthode a fonctionné pour moi, mais pas la première.
Le rebord
35

Comme l'a signalé le vanadium , vous devez modifier la stratégie 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 read|partie dans la ligne ci-dessus.


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

abu_bua
la source