Sự cố với chuyển đổi hàng loạt .png sang .pdf bằng cách sử dụng chuyển đổi


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

đưa ra thông báo lỗi:

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

Bất kỳ trợ giúp sẽ được đánh giá cao!

Câu trả lời:


156

convertlà một công cụ dòng lệnh mạnh mẽ để chuyển đổi đồ họa. Bị cáo buộc, điều đó cung cấp rủi ro bảo mật, đặc biệt là khi nó được sử dụng cùng với một máy chủ web. Trong các phiên bản gần đây của Ubuntu, một tệp chính sách được triển khai, trong đó việc sử dụng nhất định convertbị hạn chế. Rõ ràng, tệp đó theo mặc định cấm "chuyển đổi" nhiều tệp đồ họa thành một tệp PDF.

Các tập tin chính sách là /etc/ImageMagick-6/policy.xml. Bạn có thể chỉnh sửa tệp đó dưới dạng người dùng root để thay đổi chính sách.

Loại bỏ tất cả các hạn chế sử dụng

Đối với người dùng máy tính để bàn không chạy máy chủ web, chỉ cần loại bỏ các hạn chế này có thể là đủ tốt. Để đạt được mục đích đó, người ta có thể xóa tệp, nhưng tốt hơn hết là "di chuyển tệp ra" bằng cách đổi tên tệp. Với lệnh này, bạn đang đổi tên tệp. Do đó, tất cả các chính sách đều được gỡ bỏ, nhưng bạn vẫn có thể hoàn nguyên nếu cần:

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

Để trở lại tình huống ban đầu, chỉ cần đổi tên về tên ban đầu:

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

Chỉ loại bỏ các hạn chế để kết hợp thành PDF

Đối với trường hợp cụ thể của bạn, gen_wood trong một nhận xét đã chỉ ra khả năng thư giãn có chọn lọc chính sách làm việc với các tệp PDF bằng cách nhận xét một dòng:

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

Chỉnh sửa tệp và đặt các dấu nhận xét xung quanh dòng này để tắt quy tắc này:

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

Nếu bạn không muốn loại bỏ tất cả các chính sách bảo mật, đây là cách để đi.

Tuyên bố miễn trừ trách nhiệm: bạn đã được cảnh báo rằng việc xóa tệp chính sách này sẽ xóa một số chính sách bảo mật nhất định.


Cảm ơn vanadi, tôi đã đổi tên tập tin theo đề nghị và nó đã có tác dụng.
hóa đơn thanh toán

4
Tôi đã đi vào policy.xmltập tin và tìm thấy dòng ngăn tôi kết hợp pngcác tập tin thành pdfs và nhận xét nó. Dòng đó là <policy domain="coder" rights="none" pattern="PDF" />nếu bạn muốn giữ nguyên các quy tắc khác nhưng cho phép làm việc với pdfs.
gen_wood

1
@gene_wood, cảm ơn bạn: Tôi đã thêm vào bài viết vì nó cung cấp cái nhìn sâu sắc hơn và các tùy chọn cho người dùng muốn cẩn thận hơn trong việc loại bỏ các hạn chế.
vanadi

2
Ok, điều này hoạt động trong Ubuntu 18.04 với hình ảnh 8: 6.9.7.4 + dfsg-16ubfox6.4. Cảm ơn bạn.
Geppettvs D'Constanzo

Phương pháp thứ hai làm việc cho tôi, nhưng phương pháp thứ nhất thì không.
Ledge

35

Như vanadi đã đăng , bạn phải thay đổi chính sách ImageMagick.

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

và thay thế dòng

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

với

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

Nếu bạn chỉ muốn cho phép viết và không đọc, bạn cũng có thể xóa read|phần trong dòng trên.


BTW, đối với những người quan tâm đến lỗ hổng ImageMagick, đây là 2 liên kết thông tin:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.