J'utilise ImageMagick sur ubuntu-16.04 pour convertir un fichier pdf en image png.
Récemment, la conversion a cessé de fonctionner, car le package imagemagick-common
ajoutée <policy domain="coder" rights="none" pattern="PDF" />
au fichier policy.xml dans /etc/ImageMagick-6/policy.xml
Je ne veux pas changer /etc/ImageMagick-6/policy.xml
pour activer le PDF, car ce fichier appartient au package et une autre mise à jour pourrait à nouveau réécrire ce fichier
$dpkg -S /etc/ImageMagick-6/policy.xml
imagemagick-common: /etc/ImageMagick-6/policy.xml
Je crée un fichier de configuration dans le répertoire personnel
$ cat ~/.config/ImageMagick/policy.xml
<policymap>
<policy domain="coder" rights="read|write" pattern="PDF" />
</policymap>
Il semble que ce fichier a été trouvé et chargé:
$ 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
Mais ça n'aide pas.
not authorized
l'exception est levée.
Comment forcer ImageMagic à préférer ~/.config/ImageMagick/policy.xml
paramètres vs /etc/ImageMagick-6/policy.xml
réglage? Ou puis-je utiliser une autre solution pour permettre PDF lire | écrire?
J'ai le même problème que vous. Par une mise à jour de sécurité, ImageMagick interdit désormais le traitement PDF par défaut. La vulnérabilité sous-jacente dans ghostscript ( https://www.kb.cert.org/vuls/id/332928 =) est déjà corrigé mais la configuration par défaut n'est pas encore changée.
J'ai fait quelques expériences avec ~/.config/ImageMagick/policy.xml
et a découvert que cette configuration est réellement utilisée et fonctionne. MAIS vous ne pouvez pas autoriser les choses qui sont désactivées globalement. Vous ne pouvez ajouter que des restrictions supplémentaires aux processus de vos utilisateurs.
Alors mes suggestions:
/etc/ImageMagick-6/policy.xml
MISE À JOUR:
Lorsque vous utilisez # 1, vous devez vous assurer de ne pas interrompre vos mises à jour automatiques. Cela vous aidera peut-être à trouver une solution: https://unix.stackexchange.com/questions/138751/unattended-upgrades-and-modified-configuration-files
J'ai passé quelques heures à travailler dessus et j'ai finalement trouvé une solution relativement simple.
Vous devez dire à ImageMagick de charger votre fichier de configuration avec une priorité plus élevée que celle par défaut, ce que vous pouvez faire en définissant le MAGICK_CONFIGURE_PATH
variable d'environnement dans le répertoire de votre policy.xml
est dans.
https://github.com/ImageMagick/ImageMagick/issues/1342#issuecomment-429494152
Si ImageMagick est installé , seule la stratégie dans le chemin d'accès système est appliquée, sinon ce ne serait pas vraiment une stratégie de sécurité si elle pouvait facilement être remplacée. Dans certains cas, l'utilisateur peut définir certaines limites de ressources mais uniquement @ une valeur inférieure à celle définie par l'administrateur (par exemple, l'administrateur définit une limite de mémoire de 2 Go, l'utilisateur peut définir une limite de 1 Go mais pas de 3 Go).
ImageMagick a une option de construction désinstallée . Avec cette option de construction, ImageMagick permettra à la politique de sécurité d'être remplacée par n'importe quelle politique dans les chemins que vous mentionnez dans votre message.
Mise à jour (Ubuntu 18.04, 2019-10, ImageMagick 6.9.7-4 Q16 x86_64, 8: 6.9.7.4 + dfsg-16ubuntu6.7):
Ajout d'un chemin d'accès à MAGICK_CONFIGURE_PATH
travaux.
/my/path/policy.xml
<policymap>
<policy domain="coder" rights="read | write" pattern="PDF" />
</policymap>
MAGICK_CONFIGURE_PATH='/my/path/:/etc/ImageMagick-6/' identify -list policy
MAGICK_CONFIGURE_PATH='/my/path/:/etc/ImageMagick-6/' identify -list resource