convert:not authorized `aaaa` @ error/constitute.c/ReadImage/453
Solution 1
Note: the solution in this and other answers involves disabling safety measures that are there to fix arbitrary code execution vulnerabilities. See for instance this ghostscript-related and this ubuntu-related announcement. Only go forward with these solutions if the input to
convert
comes from a trusted source.
I use ImageMagick in php (v.7.1) to slice PDF file to images.
First I got errors like:
Exception type: ImagickException
Exception message: not authorized ..... @ error/constitute.c/ReadImage/412
After some changes in /etc/ImageMagick-6/policy.xml
I start getting erroes like:
Exception type: ImagickException
Exception message: unable to create temporary file ..... Permission denied @ error/pdf.c/ReadPDFImage/465
My fix:
In file /etc/ImageMagick-6/policy.xml
(or /etc/ImageMagick/policy.xml
)
-
comment line
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
-
change line
<policy domain="coder" rights="none" pattern="PDF" />
to
<policy domain="coder" rights="read|write" pattern="PDF" />
-
add line
<policy domain="coder" rights="read|write" pattern="LABEL" />
Then restart your web server (nginx, apache).
Solution 2
I use many times the ImageMagic convert
command to convert *.tif
files to *.pdf
files.
I don't know why but today I began to receive the following error:
convert: not authorized `a.pdf' @ error/constitute.c/WriteImage/1028.
After issuing the command:
convert a.tif a.pdf
After reading the above answers I edited the file /etc/ImageMagick-6/policy.xml
and changed the line:
policy domain="coder" rights="none" pattern="PDF"
to
policy domain="coder" rights="read|write" pattern="PDF"
and now everything works fine.
I have "ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28" on "Ubuntu 16.04.5 LTS".
Solution 3
Note: this solution and any other "edit the policy.xml" solution disables safety measures against arbitrary code execution vulnerabilities in ImageMagick. If you need to process input that you do not control 100%, you should use a different program (not ImageMagick).
If you're still here, you are trying to edit images that you have complete control over, know are safe, and cannot be edited by users.
There is an /etc/ImageMagick/policy.xml
file that is installed by yum. It disallows almost everything (for security and to protect your system from getting overloaded with ImageMagick calls).
If you're getting a ReadImage
error as above, you can change the line to:
<policy domain="coder" rights="read" pattern="LABEL" />
which should fix the issue.
The file has a bunch of documentation in it, so you should read that. For example, if you need more permissions, you can combine them like:
<policy domain="coder" rights="read|write" pattern="LABEL" />
...which is preferable to removing all permissions checks (i.e., deleting or commenting out the line).
Solution 4
If someone need to do it with one command after install, run this !
sed -i 's/<policy domain="coder" rights="none" pattern="PDF" \/>/<policy domain="coder" rights="read|write" pattern="PDF" \/>/g' /etc/ImageMagick-6/policy.xml
Solution 5
Just delete /etc/ImageMagick/policy.xml
file. E.g.
rm /etc/<ImageMagick_PATH>/policy.xml
For ImageMagick 6, it's:
sudo rm /etc/ImageMagick-6/policy.xml
jianwei
Updated on July 08, 2022Comments
-
jianwei almost 2 years
I want to create a captcha pic by use
convert
from ImageMagick.And I follow this, but there are some problem .
Input In my linux shell:
convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png
The Error is:
convert:not authorized
adfgh
@ error/constitute.c/ReadImage/453. convert:missing an image filename./test.png
@ error/convert.c/ConvertImageCommand/3015My ImageMagick: Version:6.7.2-7 , I install it with
yum install ImageMagick
.I'm clueless. Any advice please?