Проблема з пакетним перетворенням .png в .pdf за допомогою перетворення


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

видає повідомлення про помилку:

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

Будь-яка допомога буде вдячна!

Відповіді:


155

convertє потужним інструментом командного рядка для перетворення графіки. Нібито це створює ризики для безпеки, особливо там, де він використовується разом із веб-сервером. В останніх версіях Ubuntu реалізований файл політики, де певні можливості використання convertобмежені. Мабуть, цей файл за замовчуванням забороняє "конвертувати" кілька графічних файлів в один PDF-файл.

Файл політики є /etc/ImageMagick-6/policy.xml. Ви можете редагувати цей файл як root користувача, щоб змінити політику.

Усунення всіх обмежень щодо використання

Для користувачів настільних ПК, які не мають веб-сервера, просто усунення цих обмежень може бути досить хорошим. Для цього файл можна видалити, але краще "перенести файл", перейменувавши його. За допомогою цієї команди ви перейменовуєте файл. Як результат, усі політики скасовуються, але ви все одно можете повернути їх за потреби:

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

Щоб повернутися до початкової ситуації, просто перейменуйте його на початкове ім'я:

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

Усунення лише обмеження на об'єднання в PDF

Для вашого конкретного випадку, gene_wood у коментарі вказав на можливість вибірково послабити політику роботи з PDF-файлами, коментуючи один рядок:

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

Відредагуйте файл та поставте позначки коментарів навколо цього рядка, щоб відключити це правило:

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

Якщо ви не хочете скасовувати всі політики безпеки, це шлях.

Відмова від відповідальності: вас попередили, що видалення цього файла політики видаляє певні політики безпеки.


Дякую ванадію, я перейменував файл, як було запропоновано, і він спрацював частування.
рахунок-ланкастер

4
Я зайшов у policy.xmlфайл і знайшов рядок, який заважав мені поєднувати pngфайли в pdfs, і прокоментував це. Цей рядок був, <policy domain="coder" rights="none" pattern="PDF" />якщо ви хочете залишити інші правила недоторканими, але дозволити працювати з pdfs.
gene_wood

1
@gene_wood, дякую: я додав до публікації, оскільки це дає більше розуміння та варіантів для користувачів, які хочуть бути більш уважними у усуненні обмежень.
ванадій

2
Гаразд, це працює в Ubuntu 18.04 з imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Дякую.
Geppettvs D'Constanzo

Другий метод працював для мене, але перший не став.
Вестень

35

Як розміщено ванадій , ви повинні змінити політику ImageMagick.

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

і замінити рядок

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

з

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

Якщо ви хочете лише дозволити писати, а не читати, ви можете також стерти read|частину у рядку вище.


BTW, для тих, хто цікавиться вразливістю ImageMagick, ось два інформаційні посилання:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.