web-dev-qa-db-ja.com

convertを使用した.pngから.pdfへのバッチ変換に関する問題

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

エラーメッセージが表示されます。

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

助けていただければ幸いです!

87
bill-lancaster

convertは、グラフィックを変換するための強力なコマンドラインツールです。伝えられるところでは、特にWebサーバーと組み合わせて使用​​される場合、セキュリティリスクが発生します。 Ubuntuの最近のバージョンでは、convertの特定の使用が制限されているポリシーファイルが実装されています。どうやら、そのファイルはデフォルトで複数のグラフィックファイルを1つのPDFファイルに「変換」することを禁止しています。

ポリシーファイルは/etc/ImageMagick-6/policy.xmlです。そのファイルをrootユーザーとして編集して、ポリシーを変更できます。

すべての使用制限を取り除く

Webサーバーを実行していないデスクトップユーザーの場合、これらの制限を単に除去するだけで十分かもしれません。その目的のために、ファイルを削除することもできますが、名前を変更して「ファイルを移動」することをお勧めします。このコマンドを使用すると、ファイルの名前を変更できます。その結果、すべてのポリシーが解除されますが、必要に応じて元に戻すことができます。

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は、1行をコメントアウトすることで、PDFファイルを操作するポリシーを選択的に緩和する可能性を指摘しました。

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

ファイルを編集し、この行をコメントマークで囲んでこのルールを無効にします。

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

すべてのセキュリティポリシーを削除したくない場合は、これが方法です。

免責事項:このポリシーファイルを削除すると特定のセキュリティポリシーが削除されるという警告が表示されました。

128
vanadium

バナジウム投稿 のように、ImageMagickポリシーを変更する必要があります。

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

そして、行を置き換えます

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

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

読み取りのみではなく書き込みのみを許可する場合は、上の行のread|部分を消去することもできます。


ところで、ImageMagickの脆弱性に興味がある人のために、ここに2つの情報リンクがあります。

29
abu_bua