Probleme bei der Stapelkonvertierung von .png in .pdf mit convert

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

gibt eine Fehlermeldung aus:

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

Jede Hilfe wäre dankbar!

bill-lancaster
quelle

Antworten:

156

convertist ein leistungsstarkes Befehlszeilenprogramm zum Konvertieren von Grafiken. Angeblich birgt dies Sicherheitsrisiken, insbesondere wenn es in Verbindung mit einem Webserver verwendet wird. In neueren Versionen von Ubuntu ist eine Richtliniendatei implementiert, in der bestimmte Verwendungszwecke converteingeschränkt sind. Anscheinend verbietet diese Datei standardmäßig das "Konvertieren" mehrerer Grafikdateien in eine PDF-Datei.

Die Richtliniendatei lautet /etc/ImageMagick-6/policy.xml. Sie können diese Datei als Root-Benutzer bearbeiten, um die Richtlinien zu ändern.

Beseitigung aller Nutzungsbeschränkungen

Für Desktop-Benutzer, die keinen Webserver betreiben, ist es möglicherweise ausreichend, diese Einschränkungen zu beseitigen. Zu diesem Zweck kann man die Datei löschen, aber es ist besser, die Datei durch Umbenennen "herauszuschieben". Mit diesem Befehl benennen Sie die Datei um. Infolgedessen werden alle Richtlinien aufgehoben, Sie können sie jedoch bei Bedarf wiederherstellen:

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

Um zur ursprünglichen Situation zurückzukehren, benennen Sie einfach wieder in den ursprünglichen Namen um:

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

Beseitigen Sie nur die Einschränkung, um in PDF zu kombinieren

Für Ihren speziellen Fall wies gene_wood in einem Kommentar auf die Möglichkeit hin, die Richtlinie für die Arbeit mit PDF-Dateien selektiv zu lockern, indem Sie eine Zeile auskommentieren:

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

Bearbeiten Sie die Datei und setzen Sie Kommentarzeichen um diese Zeile, um diese Regel zu deaktivieren:

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

Wenn Sie nicht alle Sicherheitsrichtlinien entfernen möchten, ist dies der richtige Weg.

Haftungsausschluss: Sie wurden gewarnt, dass durch das Entfernen dieser Richtliniendatei bestimmte Sicherheitsrichtlinien entfernt werden.

Vanadium
quelle
Dank Vanadium habe ich die Datei wie vorgeschlagen umbenannt und es hat wunderbar geklappt.
Bill-Lancaster
4
Ich ging in die policy.xmlDatei und fand die Zeile, die mich daran hinderte, pngDateien zu pdfs zu kombinieren , und kommentierte sie aus. Diese Zeile war, <policy domain="coder" rights="none" pattern="PDF" />wenn Sie die anderen Regeln intakt lassen möchten, aber die Arbeit mit pdfs zulassen möchten.
gene_wood
1
@gene_wood, danke: Ich habe den Beitrag erweitert, da er mehr Einblicke und Optionen für Benutzer bietet, die beim Beseitigen von Einschränkungen vorsichtiger vorgehen möchten.
Vanadium
2
Ok, das funktioniert in Ubuntu 18.04 mit imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Danke.
Geppettvs D'Constanzo
Die zweite Methode hat bei mir funktioniert, die erste jedoch nicht.
The Ledge
35

Als Vanadium gebucht , müssen Sie die ImageMagick-Richtlinie ändern.

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

und tauschen Sie die Leitung aus

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

mit

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

Wenn Sie nur das Schreiben und nicht das Lesen zulassen möchten, können Sie auch den read|Teil in der obigen Zeile löschen .


Übrigens, für diejenigen, die an der ImageMagick-Sicherheitsanfälligkeit interessiert sind, gibt es hier zwei Informationslinks:

abu_bua
quelle