{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/imagemagick/feed/json -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/imagemagick", "feed_url": "https://matoken.org/blog/tag/imagemagick/feed/json", "language": "ja", "title": "Imagemagick – matoken's meme", "items": [ { "id": "https://matoken.org/blog/?p=4148", "url": "https://matoken.org/blog/2024/10/19/check-imagemagicks-built-in-images/", "title": "ImageMagick\u306e\u5185\u8535\u753b\u50cf\u3092\u78ba\u8a8d", "content_html": "
\u7aef\u672b\u306e Sixel \u306e\u52d5\u4f5c\u78ba\u8a8d\u306b\u3088\u304f\u3053\u3093\u306a\u611f\u3058\u3067 ImageMagick \u5185\u8535\u306e rose: \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\uff0e
\n$ convert rose: - | sixelv -\n
\u3053\u306e\u5185\u8535\u7d44\u307f\u8fbc\u307f\u753b\u50cf\u306f\u4ed6\u306b\u3082\u306a\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n\n
\u691c\u7d22\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e
\nBuilt-in image \u3068\u3044\u3046\u3088\u3046\u3067\u3059\uff0e\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u4e00\u89a7\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff0e\u5927\u6587\u5b57\u3067\u51fa\u3066\u304d\u307e\u3059\u304c\uff0c\u5927\u6587\u5b57\u3067\u3082\u5c0f\u6587\u5b57\u3067\u3082 OK \u305d\u3046\u3067\u3059\uff0e( H
\u306f Built-in image \u3067\u306f\u306a\u3044\uff0e)
$ convert -list coder | grep MAGICK\nGRANITE MAGICK\nH MAGICK\nLOGO MAGICK\nNETSCAPE MAGICK\nROSE MAGICK\nWIZARD MAGICK\n
$ montage -label \"%i\" -tile 3 -geometry 200 GRANITE: LOGO: NETSCAPE: ROSE: WIZARD: - | sixelv -\n
rose/logo \u8fba\u308a\u304c\u899a\u3048\u3084\u3059\u304f\u3066\u3044\u3044\u3067\u3059\u306d\uff0e\u5f8c\u306f\u7528\u9014\u5225\u306b\u4f7f\u3046\u3068\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.13.12+dfsg1-1+b1\n$ sixelv --version\nsixelv 3.8.1 (2024/09/21) - SIXEL viewer\n Supported loader: blurhash, libwebp, stb_image\n$ lsb_release -dr\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\n$ arch\nx86_64\n
\u5148\u65e5\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u306e\u753b\u50cf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4f59\u767d\u3092\u30ab\u30c3\u30c8\u3057\u3066\u8aad\u307f\u3084\u3059\u304f\u3057\u307e\u3057\u305f\uff0ejpeg \u3092 zip \u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u305f\u306e\u3067\u3059\u304c\uff0cPDF \u30d5\u30a1\u30a4\u30eb\u306e\u307b\u3046\u304c\u90fd\u5408\u304c\u3044\u3044\u3053\u3068\u3082\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 jpeg \u30d5\u30a1\u30a4\u30eb\u7fa4\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u307e\u3057\u305f\uff0e
\n\n
ImageMagick \u306e convert \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u3067\u5931\u6557\uff0c\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u306e /etc/ImageMagick-6/policy.xml
\u3067\u30e1\u30e2\u30ea\u30ea\u30bd\u30fc\u30b9\u3092 1GB \u304b\u3089 4GB \u306b\u8a2d\u5b9a\u3057\u3066\u3082\u5931\u6557\u3057\u30668GB \u306b\u8a2d\u5b9a\u3057\u3066\u3084\u3063\u3068\u51e6\u7406\u304c\u51fa\u6765\u307e\u3057\u305f\uff0e
$ convert 2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (1)\n :\nconvert-im6.q16: cache resources exhausted `2530201/2530201-107.jpg' @ error/cache.c/OpenPixelCache/4119.\nconvert-im6.q16: TooManyExceptions (exception processing is suspended) @ warning/exception.c/ThrowException/1054.\nconvert-im6.q16: cache resources exhausted `2530201/2530201-108.jpg' @ error/cache.c/OpenPixelCache/4119.\n$ identify -list resource (2)\nResource limits:\n Width: 32KP\n Height: 32KP\n List length: unlimited\n Area: 256MP\n Memory: 1GiB\n Map: 2GiB\n Disk: 2GiB\n File: 768\n Thread: 4\n Throttle: 0\n Time: unlimited\n$ identify -limit memory 4096MiB -list resource | grep ^\\ \\ Memory: (3)\n Memory: 1GiB\n$ identify -limit memory 512MiB -list resource | grep ^\\ \\ Memory: (4)\n Memory: 512MiB\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml (5)\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 4b878ce..aa54cbe 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -95,7 +95,7 @@\n <!-- Set maximum amount of memory in bytes to allocate for the pixel cache\n from the heap. When this limit is exceeded, the image pixels are cached\n to memory-mapped disk. -->\n- <policy domain=\"resource\" name=\"memory\" value=\"1024MiB\"/>\n+ <policy domain=\"resource\" name=\"memory\" value=\"4096MiB\"/>\n <!-- Set maximum amount of memory map in bytes to allocate for the pixel\n cache. When this limit is exceeded, the image pixels are cached to\n disk. -->\n$ identify -list resource | grep ^\\ \\ Memory: (6)\n Memory: 4GiB\n
\u3044\u3061\u304a\u3046\u3053\u308c\u3067\u8fd4\u9084\u3067\u3057\u307e\u3057\u305f\u304c\uff0c\u3053\u306e\u30e1\u30e2\u30ea\u5229\u7528\u91cf\u3068\u5909\u63db\u6642\u9593\u306f\u5927\u304d\u3059\u304e\u308b\u306e\u3067\u4ed6\u306e\u65b9\u6cd5\u3092\u63a2\u3057\u307e\u3057\u305f\uff0e
\nimg2pdf \u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306f\u53ef\u80fd\u306a\u3089\u30ed\u30b9\u30ec\u30b9\u3067\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u9ad8\u901f(\u304b\u3064\u7701\u30ea\u30bd\u30fc\u30b9\u306a\u306f\u305a)\u3067\u51e6\u7406\u3067\u304d\u305d\u3046\u3067\u3059\uff0e
\n\u5c0e\u5165\u306f\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u30d1\u30c3\u30b1\u30fc\u30b8\u304b\u3089\uff0e\u5b9f\u884c\u901f\u5ea6\u3082\u3068\u3066\u3082\u65e9\u304b\u3063\u305f\u3067\u3059\uff0e
\n$ sudo apt install img2pdf (1)\n$ img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/* (2)\nfind 2530201 -type f -print0 | sort -Vz | xargs -0 img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf (3)\n
\u5909\u63db\u6642\u9593\u306e\u6bd4\u8f03\u3067\u3059\uff0econvert \u304c\u7570\u69d8\u306b\u9045\u3044\u3067\u3059\u304c\uff0c\u3053\u308c\u306f\u30b9\u30ef\u30c3\u30d7\u3092\u4f7f\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u306e\u3082\u5927\u304d\u3044\u3068\u601d\u308f\u308c\uff0c\u30e1\u30e2\u30ea\u306e\u5927\u304d\u3044\u30de\u30b7\u30f3\u3060\u3068\u3082\u3063\u3068\u65e9\u304f\u306a\u308b\u3068\u601d\u3044\u307e\u3059\uff0e
\n$ time convert 2530201/* \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.pdf\n\nreal 5m18.636s\nuser 0m47.748s\nsys 0m31.136s\n$ time img2pdf -o \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a-img2pdf.pdf 2530201/*\n\nreal 0m1.279s\nuser 0m0.556s\nsys 0m0.180s\n
\u5b9f\u969b\u306e\u753b\u50cf\u3082\u7279\u306b\u554f\u984c\u306a\u3055\u305d\u3046\u3060\u3057\uff0c\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\u3082\u307b\u3068\u3093\u3069\u5909\u308f\u308a\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
\n\u5358\u7d14\u306b\u753b\u50cf\u3092 PDF \u30d5\u30a1\u30a4\u30eb\u306b\u5909\u63db\u3059\u308b\u6642\u306f img2pdf \u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n$ dpkg-query -W imagemagick img2pdf\nimagemagick 8:6.9.12.98+dfsg1-5.2\nimg2pdf 0.5.1-1\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\nCodename: trixie\n$ arch\nx86_64\n
\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8535\u66f8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30ed\u30fc\u30ab\u30eb\u3067\u8aad\u3080\u969b\u4f59\u767d\u304c\u90aa\u9b54\u306a\u306e\u3067\u6d88\u3057\u307e\u3057\u305f\uff0e
\n\n
\u307e\u305a\uff0c\u5341\u5168\u306b\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u306e\u5229\u7528\u8005\u767b\u9332\uff08\u500b\u4eba\uff09\u306e\u672c\u767b\u9332\u3092\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\uff0e
\n\u73fe\u5728\u306f\u73fe\u5730\u306b\u884c\u304b\u305a\u3068\u3082\u9060\u9694\u3067\u672c\u767b\u9332\u307e\u3067\u53ef\u80fd\u3067\u3059\uff0e\u4fbf\u5229\u306b\u306a\u308a\u307e\u3057\u305f\u306d\uff0e
\n\u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 \u3067\u8aad\u307f\u305f\u3044\u672c\u3092\u691c\u7d22\uff0c\u30ed\u30b0\u30a4\u30f3( \u767b\u9332\u5229\u7528\u8005ID\uff0c\u30d1\u30b9\u30ef\u30fc\u30c9 )
\n\u53f3\u4e0b\u306e\u5370\u5237\u3067\u5370\u5237\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u300c\u5370\u5237\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d\u3067\u8a72\u5f53\u7bc4\u56f2\u306e pdf \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\uff0c
\n\u4e0a\u90e8\u306b \u300c\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u2026\u300d \u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\uff0c\u3057\u3070\u3089\u304f\u5f85\u3064\u3068 \u300c\u5370\u5237\u7528\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u53f3\u306e\u30ea\u30f3\u30af\u304b\u3089PDF\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002\u300d\u306b\u5909\u308f\u308b\u306e\u3067 \u300cPDF\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u300d \u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\uff0e
\n Note \n | \n\n \n \n50\u30b3\u30de\u3092\u8d85\u3048\u3066\u3044\u308b\u5834\u5408\u306f\u300c\u7bc4\u56f2\u3092\u6307\u5b9a\u300d\u3067 | \n
\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f PDF \u30d5\u30a1\u30a4\u30eb\u306f\u4e0b\u90e8\u306b \u767b\u9332\u5229\u7528\u8005ID, \u5229\u7528\u8005\u540d\uff0c\u751f\u6210\u5e74\u6708\u65e5\u6642\u5206\u79d2 \u304c\u753b\u50cf\u306b\u57cb\u3081\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\uff0e
\nPDF \u30d5\u30a1\u30a4\u30eb\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3057\u305f\uff0e2481 x 1732.5 pts 50\u30b3\u30de(100\u30da\u30fc\u30b8\u5206)\u306737MB\u7a0b\uff0e
\n$ pdfinfo digidepo_2530201_0001-001-050.pdf\nTitle: \u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\nKeywords: A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457 \u307b\u304b\u300e\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a\u300f,\u6771\u4eac\u5275\u5143\u793e,1964.2(43\u5237:1999.10). \u56fd\u7acb\u56fd\u4f1a\u56f3\u66f8\u9928\u30c7\u30b8\u30bf\u30eb\u30b3\u30ec\u30af\u30b7\u30e7\u30f3 https://dl.ndl.go.jp/pid/2530201 (\u53c2\u7167 2024-05-02)\nAuthor: A.E.\u30f4\u30a1\u30f3\u30fb\u30f4\u30a9\u30fc\u30af\u30c8 \u8457\nProducer: PyPDF2\nCreationDate: Thu May 2 00:30:21 2024 JST\nModDate: Thu May 2 00:30:21 2024 JST\nCustom Metadata: no\nMetadata Stream: no\nTagged: no\nUserProperties: no\nSuspects: no\nForm: none\nJavaScript: no\nPages: 50\nEncrypted: yes (print:yes copy:no change:no addNotes:no algorithm:AES-256)\nPage size: 2481 x 1732.5 pts\nPage rot: 0\nFile size: 36676525 bytes\nOptimized: no\nPDF version: 1.7\n
Encrypted \u3067 print:yes copy:no change:no addNotes:no \u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u3082\u308f\u304b\u3089\u306a\u3044\u306e\u3067\uff0ctdftk \u306f\u4f7f\u3048\u307e\u305b\u3093\uff0e
\nError: Invalid PDF: unknown.encryption.type.r\nError: Failed to open input PDF file:\n
print \u306f\u51fa\u6765\u308b\u306e\u3067 mcomix \u3067\u3082\u8aad\u3081\u307e\u3059\uff0e\u3068\u3044\u3046\u3053\u3068\u3067 pdfimages
\u3067\u4e2d\u306e\u753b\u50cf\u306e\u53d6\u308a\u51fa\u3057\u306f\u51fa\u6765\u307e\u3057\u305f\uff0e
$ pdfimages -all digidepo_2530201_0001-001-050.pdf 2530201/2530201\n$ ls 2530201/\n2530201-000.jpg 2530201-004.jpg 2530201-008.jpg 2530201-012.jpg 2530201-016.jpg 2530201-020.jpg 2530201-024.jpg 2530201-028.jpg 2530201-032.jpg 2530201-036.jpg 2530201-040.jpg 2530201-044.jpg 2530201-048.jpg\n2530201-001.jpg 2530201-005.jpg 2530201-009.jpg 2530201-013.jpg 2530201-017.jpg 2530201-021.jpg 2530201-025.jpg 2530201-029.jpg 2530201-033.jpg 2530201-037.jpg 2530201-041.jpg 2530201-045.jpg 2530201-049.jpg\n2530201-002.jpg 2530201-006.jpg 2530201-010.jpg 2530201-014.jpg 2530201-018.jpg 2530201-022.jpg 2530201-026.jpg 2530201-030.jpg 2530201-034.jpg 2530201-038.jpg 2530201-042.jpg 2530201-046.jpg\n2530201-003.jpg 2530201-007.jpg 2530201-011.jpg 2530201-015.jpg 2530201-019.jpg 2530201-023.jpg 2530201-027.jpg 2530201-031.jpg 2530201-035.jpg 2530201-039.jpg 2530201-043.jpg 2530201-047.jpg\n$ file 2530201/2530201-001.jpg\n2530201/2530201-001.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 3308x2310, components 3\n
\u4f59\u767d\u304c\u6c17\u306b\u306a\u308b\u306e\u3067 Imagemagick \u306e trim \u3067\u30ab\u30c3\u30c8\u3057\u307e\u3059\uff0e\u6b63\u653b\u6cd5\u3060\u3068\u5ea7\u6a19\u3092\u6307\u5b9a\u3057\u307e\u3059\u304c\uff0c\u4eca\u56de\u306f fuzz \u3067 Imagemagick \u306b\u9811\u5f35\u3063\u3066\u3082\u3089\u3044\u307e\u3059\uff0e
\nfuzz \u306e % \u306f\u753b\u50cf\u306b\u3088\u308a\u4e01\u5ea6\u3044\u3044\u5024\u3092\u63a2\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\u4eca\u56de\u306f 60% \u3067\u826f\u3055\u305d\u3046.
$ convert 2530201/2530201-001.jpg -fuzz 60% -trim 2530201-001-trim.jpg\n
\u4f59\u767d\u304c\u30ab\u30c3\u30c8\u3055\u308c\uff0c3308×2310 \u2192 2831×2099 \u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u3044\u3044\u611f\u3058\u305d\u3046\u306a\u306e\u3067 mogrify \u3067\u5168\u753b\u50cf\u306b\u53cd\u6620\u3057\u30661\u3064\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u307e\u3068\u3081\u307e\u3057\u305f\uff0e
\n$ mogrify -fuzz 60% -trim 2530201/*\n$ find 2530201 | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip\n
50\u30b3\u30de\u4ee5\u4e0a\u306e\u8cc7\u6599\u3067\uff0c2\u3064\u4ee5\u4e0a\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u5834\u5408\u306f2\u3064\u76ee\u4ee5\u964d\u306e PDF \u3092\u540c\u69d8\u306b\u5909\u63db\u3092\u7e70\u308a\u8fd4\u3057\u3066\u30a2\u30fc\u30ab\u30a4\u30d6\u306b\u8ffd\u52a0\u3057\u307e\u3059\uff0e\u305f\u3060\uff0c pdfimages
\u3067\u751f\u6210\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u540d\u304c\u88ab\u3063\u3066\u3057\u307e\u3046\u306e\u3067 rename
\u30b3\u30de\u30f3\u30c9\u306a\u3069\u3067\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u66f4\u3057\u307e\u3059\uff0e
$ rm 2530201/* (1)\n$ pdfimages -all ./digidepo_2530201_0001-051-100.pdf 2530201/2530201 (2)\n$ rename 's/(\\d+)-(\\d+)/sprintf \"$1-%03d\",$2 + 50/e' 2530201/* (3)\n$ mogrify -fuzz 60% -trim 2530201/* (4)\n$ find 2530201 -print | sort -V | zip -@0 ./\u5b87\u5b99\u8239\u30d3\u30fc\u30b0\u30eb\u53f7\u306e\u5192\u967a.zip (5)\n
\u30bf\u30d6\u30ec\u30c3\u30c8\u7aef\u672b\u3067 MComix \u3067\u95b2\u89a7\u3059\u308b\u3068\u3044\u3044\u611f\u3058\u305d\u3046\u3067\u3059\uff0e\u3061\u3087\u3063\u3068\u30b5\u30a4\u30ba\u304c\u5927\u304d\u3044\u306e\u3067\u7e2e\u5c0f\u3057\u305f\u308a\uff0c\u4e92\u63db\u6027\u306e\u305f\u3081\u306b PDF \u5f62\u5f0f\u306b\u3057\u305f\u308a\u3057\u3066\u3082\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n\u30b9\u30de\u30db\u306a\u3069\u3067\u8aad\u3080\u5834\u5408\u306f\u3055\u3089\u306b\u771f\u3093\u4e2d\u304b\u30892\u5206\u5272\u3057\u305f\u3089\u826f\u3055\u305d\u3046\u3067\u3059\u304c\uff0c\u3056\u3063\u3068\u898b\u305f\u611f\u3058\u306e\u3069\u304c\u4e2d\u592e\u306b\u63c3\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u5c11\u3057\u9762\u5012\u305d\u3046\u3067\u3059\uff0e
$ dpkg-query -W imagemagick zip poppler-utils rename\nimagemagick 8:6.9.12.98+dfsg1-5.2\npoppler-utils 22.12.0-2.2+b1\nrename 2.02-1\nzip 3.0-13\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Debian\nDescription: Debian GNU/Linux trixie/sid\nRelease: n/a\nCodename: trixie\n$ arch\nx86_64\n
ImagemMgick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067pdf\u3092jpeg\u306b\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3057\u305f\uff0e\u3067\u3082\u3053\u308c\u306f\u898b\u899a\u3048\u306e\u3042\u308b\u30a8\u30e9\u30fc\u2026\u2026\u3069\u3053\u304b\u306b\u30e1\u30e2\u3057\u305f\u6c17\u304c\u3059\u308b\u306e\u3067\u3059\u304c\u898b\u5f53\u305f\u3089\u306a\u3044\u306e\u3067blog\u306b\u3057\u3066\u307f\u307e\u3057\u305f\uff0e
\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg\nconvert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.\nconvert-im6.q16: no images defined `/tmp/HQeSTL5TgcgAPtS.jpg' @ error/convert.c/ConvertImageCommand/3258.
\n\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u554f\u984c\u3067ImageMagick\u306e\u8a2d\u5b9a\u3067\u7121\u52b9\u306b\u3057\u3066\u3042\u308b\u306e\u3067\u3053\u308c\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff0e
\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 82a3d0b..0953557 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -91,6 +91,6 @@\n <policy domain=\"coder\" rights=\"none\" pattern=\"PS2\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"PS3\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"EPS\" />\n- <policy domain=\"coder\" rights=\"none\" pattern=\"PDF\" />\n+ <policy domain=\"coder\" rights=\"read|write\" pattern=\"PDF\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"XPS\" />\n </policymap>
\n\u8a2d\u5b9a\u3092\u7de8\u96c6\u5f8c\u5b9f\u884c\u3059\u308b\u3068\u3046\u307e\u304f\u52d5\u304d\u307e\u3057\u305f :)
\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[0] /tmp/HQeSTL5TgcgAPtS.jpg
\n\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u666e\u901a\u306b\u6307\u5b9a\u3059\u308b\u3068\uff0c \u30d5\u30a1\u30a4\u30eb\u540d-%d.jpg
\u306e\u3088\u3046\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u9023\u756a\u3067\u4f5c\u6210\u3055\u308c\u307e\u3059\uff0e
\n\u4eca\u56de\u306f1\u30da\u30fc\u30b8\u3081\u3060\u3051\u304c\u6b32\u3057\u3044\u306e\u3067\u4e0d\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u305f\u304f\u3055\u3093\u51fa\u6765\u3066\u3057\u307e\u3044\u307e\u3059\uff0e
1\u30da\u30fc\u30b8\u3060\u3051\u304c\u6b32\u3057\u3044\u5834\u5408\uff0c \u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u540d.pdf[0]
\u3068\u3044\u3046\u3088\u3046\u306b\u30da\u30fc\u30b8\u6307\u5b9a\u3057\u3066\u5b9f\u73fe\u3067\u304d\u307e\u3059\uff0e\u3053\u306e\u6dfb\u5b57\u306f1\u30da\u30fc\u30b8\u76ee\u304c0\uff0c2\u30da\u30fc\u30b8\u3081\u304c1\u306e\u3088\u3046\u306b\u6307\u5b9a\u3057\u307e\u3059\uff0e
\u5b58\u5728\u3057\u306a\u3044\u30da\u30fc\u30b8\u756a\u53f7\u3092\u6307\u5b9a\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e
\n$ convert -geometry 640 /var/tmp/Nextcloud2pdf_cache/HQeSTL5TgcgAPtS.pdf[99] /tmp/HQeSTL5TgcgAPtS-99.jpg\n\nRequested FirstPage is greater than the number of pages in the file: 33\n No pages will be processed (FirstPage > LastPage).\nconvert-im6.q16: no images defined `./HQeSTL5TgcgAPtS-1.jpg' @ error/convert.c/ConvertImageCommand/3258.
\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.10.23+dfsg-2.1+deb10u1\n$ lsb_release -dr\nDescription: Debian GNU/Linux 10 (buster)\nRelease: 10\n$ uname -m\nx86_64
\nGoogle Photo\u306bheic\u5f62\u5f0f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3068\u300c\u9ad8\u753b\u8cea\u300d(16MP\u306b\u7e2e\u5c0f\u3055\u308c\u308b)\u8a2d\u5b9a\u3067\u3082\u7e2e\u5c0f\u3055\u308c\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u3069\u306e\u304f\u3089\u3044\u306e\u30b5\u30a4\u30ba\u307e\u3067OK\u306a\u306e\u304b\u3092\u8a66\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0c\u500d\u3005\u3067\u753b\u50cf\u7d50\u5408\u3057\u3066\u3044\u305f\u3089128MP\u307b\u3069\u306e\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\u6642\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e
\n$ convert -append out.heic out.heic out128.heic\nconvert-im6.q16: cache resources exhausted `out.heic' @ error/cache.c/OpenPixelCache/4083.\n
\u51e6\u7406\u3057\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u99c4\u306b\u3067\u304b\u3044\u3067\u3059\uff0e
\n$ identify ./out.heic\n./out.heic HEIC 9884x6552 9884x6552+0+0 8-bit YCbCr 0.020u 0:00.010\n
\u3053\u306e\u3042\u305f\u308a\u306e\u30da\u30fc\u30b8\u3092\u53c2\u8003\u306b\u30dd\u30ea\u30b7\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3057\u3066\u30e1\u30e2\u30ea\u3092\u5897\u3084\u3057\u3066\u307f\u307e\u3059\uff0e
\n$ sudo git -C /etc diff /etc/ImageMagick-6/policy.xml\ndiff --git a/ImageMagick-6/policy.xml b/ImageMagick-6/policy.xml\nindex 59d2fc6..4c6d088 100644\n--- a/ImageMagick-6/policy.xml\n+++ b/ImageMagick-6/policy.xml\n@@ -57,8 +57,8 @@\n <!-- <policy domain=\"system\" name=\"memory-map\" value=\"anonymous\"/> -->\n <!-- <policy domain=\"system\" name=\"max-memory-request\" value=\"256MiB\"/> -->\n <!-- <policy domain=\"resource\" name=\"temporary-path\" value=\"/tmp\"/> -->\n- <policy domain=\"resource\" name=\"memory\" value=\"256MiB\"/>\n- <policy domain=\"resource\" name=\"map\" value=\"512MiB\"/>\n+ <policy domain=\"resource\" name=\"memory\" value=\"2048MiB\"/>\n+ <policy domain=\"resource\" name=\"map\" value=\"4096MiB\"/>\n <policy domain=\"resource\" name=\"width\" value=\"16KP\"/>\n <policy domain=\"resource\" name=\"height\" value=\"16KP\"/>\n <!-- <policy domain=\"resource\" name=\"list-length\" value=\"128\"/> -->\n
\u3046\u307e\u304f\u884c\u304f\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f :)
\n$ time convert -append out.heic out.heic out128.heic; echo $?\n\nreal 2m33.128s\nuser 6m42.527s\nsys 0m4.704s\n0\n$ ls -l out128.heic\n-rw-r--r-- 1 matoken matoken 4286359 Oct 20 00:30 out128.heic\n$ identify out128.heic\nout128.heic HEIC 9884x13104 9884x13104+0+0 8-bit YCbCr 0.000u 0:00.010\n
\u3067\u3082\u5272\u308a\u5f53\u3066\u904e\u304e\u306a\u6c17\u3082\u3059\u308b\u306e\u3067\u3082\u5c11\u3057\u6e1b\u3089\u305d\u3046\uff0e
\n$ dpkg-query -W imagemagick\nimagemagick 8:6.9.10.23+dfsg-2.1+b2\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -m\nx86_64\n
\u6700\u8fd1Mailman\u306bbot\u304b\u3089\u3067\u3042\u308d\u3046\u767b\u9332\u304c\u6ca2\u5c71\u3084\u3063\u3066\u304f\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u767b\u9332\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5927\u62b5\u30e1\u30b8\u30e3\u30fc\u306a\u30d5\u30ea\u30fc\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u751f\u304d\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3059\u304c\uff0cquota\u3084\u8ee2\u9001\u91cf\u306e\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u5e30\u3063\u3066\u304d\u307e\u3059\uff0e\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3067\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u8f9b\u3044\u3067\u3059\uff0e
\nMailman\u306bcaptcha\u304b\u4f55\u304b\u3092\u8a2d\u7f6e\u3067\u304d\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u304b\u7121\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u305f\u306e\u3067\u3059\u304c\uff0c\u516c\u5f0f\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\uff0esource\u3092\u4fee\u6b63\u3057\u3066Google\u306eReCaptcha\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b\u4eba\u306f\u5c45\u307e\u3059\u304c\uff0c\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306e\u305f\u3073\u306b\u30d1\u30c3\u30c1\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0e\u6700\u8fd1\u3082\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30db\u30fc\u30eb\u304c\u898b\u3064\u304b\u3063\u3066\u3044\u307e\u3059\u3057\u653e\u7f6e\u3059\u308b\u308f\u3051\u306b\u3082\u751f\u304d\u307e\u305b\u3093\uff0e
\n\n\u8a72\u5f53\u30e1\u30fc\u30eb\u3092\u898b\u308b\u3068\u5e78\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u4f7f\u3044\u56de\u3057\u3067\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u306f\u591a\u304f\u3042\u308a\u307e\u305b\u3093\uff0e\u3068\u308a\u3042\u3048\u305aMailman\u306eban_list\u306b\u3053\u308c\u3089\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u3066mailq\u306b\u6e9c\u307e\u3063\u3066\u3044\u308b\u8a72\u5f53\u30e1\u30fc\u30eb\u306fdrop\u3057\u307e\u3057\u305f\uff0e1\u9031\u9593\u304f\u3089\u3044\u3057\u305f\u3089\u30ea\u30e2\u30fc\u30c8\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3082\u7121\u304f\u306a\u3063\u3066\u9759\u304b\u306b\u306a\u308b\u3068\u826f\u3044\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\uff0e
\nban_list\u306b\u767b\u9332\u3057\u307e\u3057\u305f\u304c\uff0c\u3082\u3057\u304b\u3057\u305f\u3089bot\u3067\u306f\u306a\u304f\u666e\u901a\u306b\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u3044\u308b\u4eba\u3082\u5c45\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\u305d\u308c\u304c\u89e3\u308b\u3088\u3046\u306bban_list\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8868\u793a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e\u305d\u306e\u307e\u307e\u8868\u793a\u3059\u308b\u306e\u306f\u826f\u304f\u306a\u3044\u6c17\u304c\u3059\u308b\u306e\u3067\u753b\u50cf\u306b\u3057\u3066\u30ce\u30a4\u30ba\u3092\u6563\u3089\u3057\u3066\u6ce2\u578b\u5909\u5f62\u3092\u304b\u3051\u3066\u307f\u307e\u3057\u305f\uff0e
\nMailman\u306econfig_list
\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u51fa\u529b\u3057\u3066ban_list
\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057\uff0cImagemagick\u306econvert
\u30b3\u30de\u30f3\u30c9\u3067\u30ce\u30a4\u30ba\u3068\u6ce2\u578b\u5909\u5f62\u306e\u30d5\u30a3\u30eb\u30bf\u3092\u304b\u3051\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u307e\u3057\u305f\uff0e
\n\u3053\u3093\u306a\u611f\u3058\u306e\u753b\u50cf\u306b\u306a\u308a\u307e\u3059\uff0e\u3053\u308c\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8aac\u660e\u3068\u4e00\u7dd2\u306b\u8f09\u305b\u307e\u3059\uff0e(\u30ce\u30a4\u30ba\u306e\u305b\u3044\u3067\u5bb9\u91cf\u304c\u5927\u304d\u304f\u2026\u2026)
cron\u306b\u767b\u9332\u3057\u307e\u3057\u305f\uff0e
\n\n$ sudo -u list crontab -l|grep ban_list39 * * * * /usr/lib/mailman/bin/config_list -c -o /dev/stdout users|grep ^ban_list |sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g'|sed -e 's/\\@/ at /g'|tr -s ',' '\\n' | sort -n > /var/lib/mailman/lists/users/ban_list && convert -size 1024x600 -background '#FFFFFF' -density 36 -gravity Center -fill black -font SetoFont label:\"users ban_list `stat -c \\%y /var/lib/mailman/lists/users/ban_list|cut -f1 -d.`\\n\\n`cat /var/lib/mailman/lists/users/ban_list`\" -attenuate 5 -noise 7 +noise Gaussian -wave 15x`expr \\( 100 + $((RANDOM \\% 100)) \\)` /var/lib/mailman/archives/public/users/ban_list.jpg
\u2026\u2026\u9577\u3044\u3067\u3059\u306d\uff0e\u305d\u308c\u306b\u753b\u50cf\u30b5\u30a4\u30ba\u56fa\u5b9a\u306a\u306e\u3067list\u304c\u5897\u3048\u308b\u3068\u6587\u5b57\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\u3066\u3053\u3068\u3067script\u306b\uff0e
\n\n#!/bin/shLISTNAME='users'FONT='SetoFont'BANLIST='/var/lib/mailman/lists/users/ban_list'IMAGE='/var/lib/mailman/archives/public/users/ban_list.jpg'# ban_list\u3092\u62bd\u51fa\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057/usr/lib/mailman/bin/config_list -c -o /dev/stdout ${LISTNAME} | grep ^ban_list | sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g' | sed -e 's/\\@/ at /g' | tr -s ',' '\\n' | sort -n > ${BANLIST}# ban_list\u306e\u884c\u6570\u306b\u3088\u3063\u3066\u753b\u50cf\u9ad8\u3055\u3092\u8a08\u7b97BANWC=`wc -l ${BANLIST} | cut -d\\ -f1`HIGHT=`expr \\( ${BANWC} \\* 60 + 120 \\)`# \u753b\u50cf\u306b\u66f8\u304d\u51fa\u3059\u6587\u5b57\u5217\u3092\u4f5c\u6210LABEL=\"users ban_list `stat -c \\%y ${BANLIST} | cut -f1 -d.`\\n\\n`cat ${BANLIST}`\"# \u6ce2\u578b\u5909\u5f62\u306e\u6ce2\u306e\u6df1\u3055\u3092\u8a08\u7b97WAVEX=`expr \\( 10 + $((RANDOM % 10)) \\)`WAVEY=`expr \\( 100 + $((RANDOM % 100)) \\)`# \u753b\u50cf\u4f5c\u6210convert -size 1024x${HIGHT} -background '#FFFFFF' -density 36 -gravity Center -fill black -font ${FONT} label:\"${LABEL}\" -attenuate 5 -noise 7 +noise Gaussian -wave ${WAVWX}x${WAVEY} ${IMAGE}
\u3066\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u306e\u5bfe\u51e6\u7642\u6cd5\u3067\u3059\u304c\u2026\u2026\uff0e
\n\n", "content_text": "\u6700\u8fd1Mailman\u306bbot\u304b\u3089\u3067\u3042\u308d\u3046\u767b\u9332\u304c\u6ca2\u5c71\u3084\u3063\u3066\u304f\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u767b\u9332\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5927\u62b5\u30e1\u30b8\u30e3\u30fc\u306a\u30d5\u30ea\u30fc\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u751f\u304d\u3066\u3044\u308b\u3088\u3046\u306a\u306e\u3067\u3059\u304c\uff0cquota\u3084\u8ee2\u9001\u91cf\u306e\u30a8\u30e9\u30fc\u3068\u306a\u3063\u3066\u5e30\u3063\u3066\u304d\u307e\u3059\uff0e\u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3067\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u8f9b\u3044\u3067\u3059\uff0e\nMailman\u306bcaptcha\u304b\u4f55\u304b\u3092\u8a2d\u7f6e\u3067\u304d\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3068\u304b\u7121\u3044\u304b\u306a\u3068\u63a2\u3057\u3066\u307f\u305f\u306e\u3067\u3059\u304c\uff0c\u516c\u5f0f\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\uff0esource\u3092\u4fee\u6b63\u3057\u3066Google\u306eReCaptcha\u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b\u4eba\u306f\u5c45\u307e\u3059\u304c\uff0c\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u306e\u305f\u3073\u306b\u30d1\u30c3\u30c1\u3059\u308b\u306e\u306f\u9762\u5012\u3067\u3059\uff0e\u6700\u8fd1\u3082\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30db\u30fc\u30eb\u304c\u898b\u3064\u304b\u3063\u3066\u3044\u307e\u3059\u3057\u653e\u7f6e\u3059\u308b\u308f\u3051\u306b\u3082\u751f\u304d\u307e\u305b\u3093\uff0e\n\nMailman and captcha\nCVE – CVE-2018-5950\nCVE – CVE-2018-13796\n\n\u8a72\u5f53\u30e1\u30fc\u30eb\u3092\u898b\u308b\u3068\u5e78\u3044\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u4f7f\u3044\u56de\u3057\u3067\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u306f\u591a\u304f\u3042\u308a\u307e\u305b\u3093\uff0e\u3068\u308a\u3042\u3048\u305aMailman\u306eban_list\u306b\u3053\u308c\u3089\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u767b\u9332\u3057\u3066mailq\u306b\u6e9c\u307e\u3063\u3066\u3044\u308b\u8a72\u5f53\u30e1\u30fc\u30eb\u306fdrop\u3057\u307e\u3057\u305f\uff0e1\u9031\u9593\u304f\u3089\u3044\u3057\u305f\u3089\u30ea\u30e2\u30fc\u30c8\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30fc\u30eb\u3082\u7121\u304f\u306a\u3063\u3066\u9759\u304b\u306b\u306a\u308b\u3068\u826f\u3044\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\uff0e\nban_list\u306b\u767b\u9332\u3057\u307e\u3057\u305f\u304c\uff0c\u3082\u3057\u304b\u3057\u305f\u3089bot\u3067\u306f\u306a\u304f\u666e\u901a\u306b\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u30e1\u30fc\u30eb\u30dc\u30c3\u30af\u30b9\u304c\u3042\u3075\u308c\u3066\u3044\u308b\u4eba\u3082\u5c45\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\u305d\u308c\u304c\u89e3\u308b\u3088\u3046\u306bban_list\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8868\u793a\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\uff0e\u305d\u306e\u307e\u307e\u8868\u793a\u3059\u308b\u306e\u306f\u826f\u304f\u306a\u3044\u6c17\u304c\u3059\u308b\u306e\u3067\u753b\u50cf\u306b\u3057\u3066\u30ce\u30a4\u30ba\u3092\u6563\u3089\u3057\u3066\u6ce2\u578b\u5909\u5f62\u3092\u304b\u3051\u3066\u307f\u307e\u3057\u305f\uff0e\nMailman\u306econfig_list\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3092\u51fa\u529b\u3057\u3066ban_list\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057\uff0cImagemagick\u306econvert\u30b3\u30de\u30f3\u30c9\u3067\u30ce\u30a4\u30ba\u3068\u6ce2\u578b\u5909\u5f62\u306e\u30d5\u30a3\u30eb\u30bf\u3092\u304b\u3051\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u307e\u3057\u305f\uff0e\n\u3053\u3093\u306a\u611f\u3058\u306e\u753b\u50cf\u306b\u306a\u308a\u307e\u3059\uff0e\u3053\u308c\u3092\u7533\u3057\u8fbc\u307f\u30da\u30fc\u30b8\u306b\u8aac\u660e\u3068\u4e00\u7dd2\u306b\u8f09\u305b\u307e\u3059\uff0e(\u30ce\u30a4\u30ba\u306e\u305b\u3044\u3067\u5bb9\u91cf\u304c\u5927\u304d\u304f\u2026\u2026)\n\ncron\u306b\u767b\u9332\u3057\u307e\u3057\u305f\uff0e\n$ sudo -u list crontab -l|grep ban_list39 * * * * /usr/lib/mailman/bin/config_list -c -o /dev/stdout users|grep ^ban_list |sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g'|sed -e 's/\\@/ at /g'|tr -s ',' '\\n' | sort -n > /var/lib/mailman/lists/users/ban_list && convert -size 1024x600 -background '#FFFFFF' -density 36 -gravity Center -fill black -font SetoFont label:\"users ban_list `stat -c \\%y /var/lib/mailman/lists/users/ban_list|cut -f1 -d.`\\n\\n`cat /var/lib/mailman/lists/users/ban_list`\" -attenuate 5 -noise 7 +noise Gaussian -wave 15x`expr \\( 100 + $((RANDOM \\% 100)) \\)` /var/lib/mailman/archives/public/users/ban_list.jpg\n\u2026\u2026\u9577\u3044\u3067\u3059\u306d\uff0e\u305d\u308c\u306b\u753b\u50cf\u30b5\u30a4\u30ba\u56fa\u5b9a\u306a\u306e\u3067list\u304c\u5897\u3048\u308b\u3068\u6587\u5b57\u30b5\u30a4\u30ba\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\uff0e\u3066\u3053\u3068\u3067script\u306b\uff0e\n#!/bin/sh LISTNAME='users'FONT='SetoFont'BANLIST='/var/lib/mailman/lists/users/ban_list'IMAGE='/var/lib/mailman/archives/public/users/ban_list.jpg' # ban_list\u3092\u62bd\u51fa\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057/usr/lib/mailman/bin/config_list -c -o /dev/stdout ${LISTNAME} | grep ^ban_list | sed -e 's/^.*\\[\\|\\]\\|'\\''\\|'\\ '//g' | sed -e 's/\\@/ at /g' | tr -s ',' '\\n' | sort -n > ${BANLIST} # ban_list\u306e\u884c\u6570\u306b\u3088\u3063\u3066\u753b\u50cf\u9ad8\u3055\u3092\u8a08\u7b97BANWC=`wc -l ${BANLIST} | cut -d\\ -f1`HIGHT=`expr \\( ${BANWC} \\* 60 + 120 \\)` # \u753b\u50cf\u306b\u66f8\u304d\u51fa\u3059\u6587\u5b57\u5217\u3092\u4f5c\u6210LABEL=\"users ban_list `stat -c \\%y ${BANLIST} | cut -f1 -d.`\\n\\n`cat ${BANLIST}`\" # \u6ce2\u578b\u5909\u5f62\u306e\u6ce2\u306e\u6df1\u3055\u3092\u8a08\u7b97WAVEX=`expr \\( 10 + $((RANDOM % 10)) \\)`WAVEY=`expr \\( 100 + $((RANDOM % 100)) \\)` # \u753b\u50cf\u4f5c\u6210convert -size 1024x${HIGHT} -background '#FFFFFF' -density 36 -gravity Center -fill black -font ${FONT} label:\"${LABEL}\" -attenuate 5 -noise 7 +noise Gaussian -wave ${WAVWX}x${WAVEY} ${IMAGE} \n\u3066\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u306e\u5bfe\u51e6\u7642\u6cd5\u3067\u3059\u304c\u2026\u2026\uff0e\n\u74b0\u5883\n$ lsb_release -dDescription: Debian GNU/Linux 9.4 (stretch)$ uname -mx86_64$ dpkg-query -W mailmanmailman 1:2.1.23-1+deb9u2$ dpkg-query -W imagemagickimagemagick 8:6.9.7.4+dfsg-11+deb9u4", "date_published": "2018-07-12T21:12:22+09:00", "date_modified": "2018-07-12T21:14:26+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/e34dfb243cc4baa2f1d4306941d9cfd8?s=512&d=mm&r=g" }, "tags": [ "Imagemagick", "mail", "maillist", "Mailman", "Debian", "Linux", "stretch" ] } ] }$ lsb_release -dDescription: Debian GNU/Linux 9.4 (stretch)$ uname -mx86_64$ dpkg-query -W mailmanmailman 1:2.1.23-1+deb9u2$ dpkg-query -W imagemagickimagemagick 8:6.9.7.4+dfsg-11+deb9u4