переопределить стандартный ImageMagick policy.xml - PullRequest
0 голосов
/ 08 октября 2018

Я использую ImageMagick в ubuntu-16.04 для преобразования pdf-файла в png-изображение.

Недавно преобразование прекратилось, потому что пакет imagemagick-common добавил <policy domain="coder" rights="none" pattern="PDF" /> в файл policy.xml в /etc/ImageMagick-6/policy.xml

Я не хочу изменять /etc/ImageMagick-6/policy.xml для включения PDF, потому что этот файл принадлежит пакету, и другое обновление может перезаписать этот файл снова

$dpkg -S /etc/ImageMagick-6/policy.xml 
imagemagick-common: /etc/ImageMagick-6/policy.xml

Я создаю файл конфигурации в домашнем каталоге

$ cat ~/.config/ImageMagick/policy.xml
<policymap>
    <policy domain="coder" rights="read|write" pattern="PDF" />
</policymap>

Похоже, этот файл найден и загружен:

$ identify -list policy
Path: /etc/ImageMagick-6/policy.xml
...
Policy: Coder
    rights: None 
    pattern: PDF
...
Path: /home/vasiliy/.config/ImageMagick/policy.xml
Policy: Coder
    rights: Read Write 
    pattern: PDF

Но это не помогает.

not authorized Возникает исключение.

Как заставить ImageMagic предпочитать ~/.config/ImageMagick/policy.xml настройки по сравнению с /etc/ImageMagick-6/policy.xml настройкой?Или я могу использовать какое-то другое решение, позволяющее PDF читать | писать?

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018

Я потратил пару часов, работая над этим, и, наконец, нашел относительно простое решение.

Вы должны указать ImageMagick загружать ваш файл конфигурации с более высоким приоритетом, чем файл по умолчанию, что вы можете сделать, установивпеременная окружения MAGICK_CONFIGURE_PATH для каталога, в котором находится policy.xml.

0 голосов
/ 04 июля 2019

https://github.com/ImageMagick/ImageMagick/issues/1342#issuecomment-429494152

Если ImageMagick установлен , применяется только политика в системном пути, в противном случае это не будет большой политикой безопасности, если ее легкобыть переопределенным.В некоторых случаях пользователь может установить определенные ограничения ресурсов, но только при меньшем значении, чем то, которое устанавливает администратор (например, администратор устанавливает ограничение памяти в 2 ГБ, пользователь может установить ограничение в 1 ГБ, но не 3 ГБ).

ImageMagick имеет деинсталлированную опцию сборки.С этой опцией сборки ImageMagick позволит переопределить политику безопасности любой политикой в ​​путях, которые вы упомянули в своем сообщении.

0 голосов
/ 09 октября 2018

У меня такая же проблема, как и у вас.Благодаря обновлению безопасности ImageMagick теперь запрещает обработку PDF по умолчанию.Базовая уязвимость в ghostscript (https://www.kb.cert.org/vuls/id/332928) уже исправлена, но конфигурация по умолчанию еще не изменена.

Я провел несколько экспериментов с ~/.config/ImageMagick/policy.xml и обнаружил, что эта конфигурация действительно используется и работаетНО вы не можете разрешить вещи, которые отключены глобально. Вы можете только добавить дополнительные ограничения для своих пользовательских процессов.

Так что мои предложения:

  1. настроить /etc/ImageMagick-6/policy.xml
  2. подождите, пока сопровождающие не решат снова активировать эту функцию по умолчанию

ОБНОВЛЕНИЕ:

При использовании # 1 вы должны следить за тем, чтобы не прерывать автоматические обновления.это поможет вам найти решение: https://unix.stackexchange.com/questions/138751/unattended-upgrades-and-modified-configuration-files

...