ปัญหาเกี่ยวกับการแปลงชุดของ. png เป็น. pdf โดยใช้การแปลง


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

ให้ข้อความผิดพลาด:

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

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

คำตอบ:


156

convertเป็นเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพในการแปลงกราฟิก ที่ถูกกล่าวหาว่าให้ความเสี่ยงด้านความปลอดภัยโดยเฉพาะอย่างยิ่งที่จะใช้ร่วมกับเว็บเซิร์ฟเวอร์ ใน Ubuntu รุ่นล่าสุดจะมีการใช้ไฟล์นโยบายซึ่งconvertมีการ จำกัด การใช้งานบางอย่าง เห็นได้ชัดว่าไฟล์นั้นโดยค่าเริ่มต้นห้าม "แปลง" ไฟล์กราฟิกหลายไฟล์เป็นไฟล์ PDF หนึ่งไฟล์

/etc/ImageMagick-6/policy.xmlแฟ้มนโยบายคือ คุณสามารถแก้ไขไฟล์นั้นในฐานะผู้ใช้รูทเพื่อเปลี่ยนนโยบายได้

กำจัดข้อ จำกัด การใช้งานทั้งหมด

สำหรับผู้ใช้เดสก์ท็อปที่ไม่ได้เรียกใช้เว็บเซิร์ฟเวอร์เพียงกำจัดข้อ จำกัด เหล่านี้อาจดีพอ เพื่อจุดประสงค์นั้นอาจลบไฟล์ได้ แต่ควร "ย้ายไฟล์ออก" โดยการเปลี่ยนชื่อไฟล์ ด้วยคำสั่งนี้คุณกำลังเปลี่ยนชื่อไฟล์ ดังนั้นนโยบายทั้งหมดจะถูกยก แต่คุณยังสามารถเปลี่ยนกลับได้หากจำเป็น:

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" /> -->

หากคุณไม่ต้องการที่จะกำจัดนโยบายความปลอดภัยทั้งหมดนี้เป็นวิธีที่จะไป

คำเตือน: คุณได้รับการเตือนว่าการลบไฟล์นโยบายนี้จะลบนโยบายความปลอดภัยบางอย่าง


ขอบคุณวานาเดียมฉันเปลี่ยนชื่อไฟล์ตามที่แนะนำและใช้การได้ดี
bill-lancaster

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

วิธีที่สองใช้งานได้สำหรับฉัน แต่วิธีแรกไม่ได้ผล
Ledge

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 ต่อไปนี้เป็นลิงก์ให้ข้อมูล 2 ลิงก์:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.