Problemas con la conversión por lotes de .png a .pdf usando convertir

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

da mensaje de error:

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

¡Cualquier ayuda sería apreciada!

Bill Lancaster
fuente

Respuestas:

157

convertes una poderosa herramienta de línea de comandos para convertir gráficos. Supuestamente, eso proporciona riesgos de seguridad, especialmente cuando se usa junto con un servidor web. En versiones recientes de Ubuntu, se implementa un archivo de política, donde ciertos usos de convertestán restringidos. Aparentemente, ese archivo por defecto prohíbe "convertir" múltiples archivos gráficos en un archivo PDF.

El archivo de política es /etc/ImageMagick-6/policy.xml. Puede editar ese archivo como usuario root para cambiar las políticas.

Eliminar todas las restricciones de uso

Para los usuarios de escritorio que no ejecutan un servidor web, simplemente eliminar estas restricciones podría ser lo suficientemente bueno. Para ese fin, uno puede eliminar el archivo, pero es una mejor práctica "mover el archivo" renombrándolo. Con este comando, está cambiando el nombre del archivo. Como resultado, se eliminan todas las políticas, pero aún puede revertir si es necesario:

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

Para volver a la situación original, simplemente cambie el nombre al nombre original:

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

Eliminando solo la restricción para combinar en PDF

Para su caso específico, gene_wood en un comentario señaló la posibilidad de relajar selectivamente la política para trabajar con archivos PDF comentando una línea:

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

Edite el archivo y coloque marcas de comentario alrededor de esta línea para deshabilitar esta regla:

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

Si no desea eliminar todas las políticas de seguridad, este es el camino a seguir.

Descargo de responsabilidad: se le advirtió que al eliminar este archivo de política se eliminan ciertas políticas de seguridad.

vanadio
fuente
Gracias vanadio, cambié el nombre del archivo como sugerí y funcionó de maravilla.
Bill-Lancaster
44
Entré en el policy.xmlarchivo y encontré la línea que me impedía combinar pngarchivos en pdfs y lo comenté. Esa línea era <policy domain="coder" rights="none" pattern="PDF" />si desea dejar las otras reglas intactas pero permitir trabajar con pdfs.
gene_wood
1
@gene_wood, gracias: agregué a la publicación porque proporciona más información y opciones para los usuarios que desean tener más cuidado al eliminar las restricciones.
vanadio
2
Ok, esto funciona en Ubuntu 18.04 con imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Gracias.
Geppettvs D'Constanzo
El segundo método funcionó para mí, pero el primero no.
The Ledge
35

Como se publicó en vanadio , debe cambiar la política de ImageMagick.

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

y reemplazar la línea

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

con

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

Si solo desea permitir la escritura, y no la lectura, también puede borrar la read|parte en la línea de arriba.


Por cierto, para aquellos que estén interesados ​​en la vulnerabilidad de ImageMagick, aquí hay 2 enlaces informativos:

abu_bua
fuente