{ "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/opendoas/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/opendoas/", "feed_url": "https://matoken.org/blog/tag/opendoas/feed/json/", "language": "ja", "title": "opendoas – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=4200", "url": "https://matoken.org/blog/2024/11/01/use-persistence-function-persist-with-opendoas-on-linux/", "title": "Linux\u4e0a\u306eOpenDoas\u3067\u6c38\u7d9a\u6a5f\u80fd(persist)\u3092\u4f7f\u3046", "content_html": "

\n
\n

OpenBSD\u7531\u6765\u306eDoas\u30b3\u30de\u30f3\u30c9\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308a\u307e\u3059\uff0eLinux\u7b49\u3067\u306esudo\u306b\u4f3c\u305f\u3082\u306e\u3067\u3059\u304c\uff0c\u5c0f\u3055\u304f\u30b7\u30f3\u30d7\u30eb\u3067\u3059\uff0e\u3053\u306eDoas\u30b3\u30de\u30f3\u30c9\u306e\u79fb\u690d\u7248\u306eOpenDoas\u306fLinux\u306a\u3069\u3067\u3082\u52d5\u4f5c\u3057\u307e\u3059\uff0e
\nsudo\u30b3\u30de\u30f3\u30c9\u306f1\u5ea6\u8a8d\u8a3c\u306b\u6210\u529f\u3059\u308b\u3068\u305d\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u3057\u3070\u3089\u304f\u306e\u9593\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u304fsudo\u304c\u5b9f\u884c\u3067\u304d\u3066\u4fbf\u5229\u3067\u3059\u304c\uff0cOpenBSD\u306eDoas\u3067\u306f\u540c\u69d8\u306e\u6a5f\u80fd\u3092OpenBSD\u306ekernel API\u3092\u4f7f\u3063\u3066\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u78ba\u8a8d\u3057\u3066\u304a\u308a\u3053\u306eAPI\u306fOpenBSD\u3060\u3051\u306e\u3082\u306e\u306a\u306e\u3067\u5f53\u521dOpenDoas\u306b\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
\n\u3044\u3064\u306e\u9593\u306b\u304bOpenDoas\u306b\u3082\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u6c17\u3065\u3044\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n

\n
\n

GitHub\u3092\u898b\u308b\u3068\u3053\u306e\u8fba\u3067\u5165\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\u7d50\u69cb\u524d\u3067\u3059\u306d\u2026\u2026\uff0e

\n
\n
\n\n
\n
\n

Debian/Raspberry Pi OS\u306b\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u308b\u306e\u3067\u3053\u3061\u3089\u3092\u4f7f\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ rmadison opendoas\nopendoas   | 6.8.2-1       | stable         | source, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x\nopendoas   | 6.8.2-1       | testing        | source, armel, armhf, i386, mips64el, ppc64el, s390x\nopendoas   | 6.8.2-1       | unstable       | source, armel, armhf, i386, mips64el, ppc64el, s390x\nopendoas   | 6.8.2-1       | unstable-debug | source\nopendoas   | 6.8.2-1+b1    | stable         | amd64\nopendoas   | 6.8.2-1+b1    | testing        | amd64, arm64, riscv64\nopendoas   | 6.8.2-1+b1    | unstable       | amd64, arm64, riscv64\n$ apt show opendoas\nPackage: opendoas\nVersion: 6.8.2-1\nPriority: optional\nSection: admin\nMaintainer: Scupake <scupake@riseup.net>\nInstalled-Size: 99.3 kB\nProvides: doas\nDepends: libc6 (>= 2.33), libpam0g (>= 0.99.7.1)\nBreaks: doas (<< 6.8.2)\nReplaces: doas (<< 6.8.2)\nHomepage: https://github.com/Duncaen/OpenDoas\nDownload-Size: 20.9 kB\nAPT-Manual-Installed: yes\nAPT-Sources: http://raspbian.raspberrypi.org/raspbian bookworm/main armhf Packages\nDescription: minimal replacement for sudo, with persist support\n OpenDoas: a portable version of OpenBSD's doas command\n doas is a minimal replacement for the venerable sudo. It was initially written\n by Ted Unangst of the OpenBSD project to provide 95% of the features of sudo\n with a fraction of the codebase.
\n
\n
\n
\n
OpenDoas\u306e\u5c0e\u5165
\n
\n
$ sudo apt install opendoas
\n
\n
\n
\n

sudo\u30b3\u30de\u30f3\u30c9\u3067\u306esodo\u30b0\u30eb\u30fc\u30d7\u306e\u3088\u3046\u306b wheel \u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210\u3057\uff0c\u3053\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u30e6\u30fc\u30b6\u30fc\u304cdoas\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e(sudo\u30b0\u30eb\u30fc\u30d7\u3092\u6d41\u7528\u3057\u3066\u3082\u826f\u304b\u3063\u305f\u304b\u3082?)

\n
\n
\n
\n
$ sudo addgroup --system wheel (1)\n$ sudo usermod -aG wheel matoken (2)\n$ grep ^wheel: /etc/group (3)\nwheel:x:140:matoken
\n
\n
\n
\n
    \n
  1. \n

    wheel \u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210

    \n
  2. \n
  3. \n

    wheel \u30b0\u30eb\u30fc\u30d7\u306b\u30e6\u30fc\u30b6\u30fc matoken \u3092\u8ffd\u52a0

    \n
  4. \n
  5. \n

    \u78ba\u8a8d

    \n
  6. \n
\n
\n
\n
doas\u306e\u8a2d\u5b9a
\n
\n
$ sudo install -m 0400 /dev/zero /etc/doas.conf\n$ echo 'permit persist     :wheel' | sudo tee /etc/doas.conf (1)\npermit persist  :wheel\n$ ls -l /etc/doas.conf (2)\n-r-------- 1 root root 22 11\u6708  1 05:46 /etc/doas.conf
\n
\n
\n
\n
    \n
  1. \n

    /etc/doas.conf \u306b whell \u30b0\u30eb\u30fc\u30d7\u304cdoas\u3067\u6a29\u9650\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u8a2d\u5b9a\uff0c persist \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6c38\u7d9a\u5316\u3082\uff0e

    \n
  2. \n
  3. \n

    \u30d5\u30a1\u30a4\u30eb\u6a29\u9650\u78ba\u8a8d

    \n
  4. \n
\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n
\n
Example 1. DOAS.CONF(5)\u3088\u308a
\n
\n
\n
\n
persist  After the user successfully authenticates, do not ask for a password again for some time.
\n
\n
\n
\n
\n
\n
\n
\n
doas\u3068\u6c38\u7d9a\u5316\u306e\u52d5\u4f5c\u78ba\u8a8d
\n
\n
$ doas -s (1)\ndoas: Operation not permitted\n$ newgrp wheel (2)\n$ doas -s (3)\ndoas (matoken@raspberrypi) password:\n#\nexit\n$ doas -s (4)\n#\nexit\n$ doas ls -lA /run/doas/\ntotal 0\n---------- 1 root wheel 0 Nov  1  2024 29125-5366-34816-25582434-1001\n$ doas -s (5)\ndoas (matoken@raspberrypi) password:
\n
\n
\n
\n
    \n
  1. \n

    \u30b0\u30eb\u30fc\u30d7\u306b\u8ffd\u52a0\u3057\u305f\u3051\u3069\u53cd\u6620\u3055\u308c\u3066\u3044\u306a\u3044\u72b6\u614b\u306a\u306e\u3067\u6a29\u9650\u304c\u306a\u3044

    \n
  2. \n
  3. \n

    \u3068\u308a\u3042\u3048\u305anewgrp\u30b3\u30de\u30f3\u30c9\u3067\u5229\u7528\u53ef\u80fd\u306b

    \n
  4. \n
  5. \n

    1\u5ea6\u76ee\u306edoas\u306f\u8a8d\u8a3c\u304c\u5fc5\u8981

    \n
  6. \n
  7. \n

    \u3059\u3050\u306bdoas\u3092\u53e9\u304f\u3068\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u3044

    \n
  8. \n
  9. \n

    \u6642\u9593\u304c\u7d4c\u3063\u3066\u304b\u3089\u518d\u5ea6doas\u3092\u5b9f\u884c\u3059\u308b\u3068\u8a8d\u8a3c\u304c\u5fc5\u8981

    \n
  10. \n
\n
\n
\n
\u6c38\u7d9a\u5316\u306e\u30af\u30ea\u30a2
\n
\n
$ doas -s (1)\ndoas (matoken@raspberrypi) password:\n#\nexit\n$ doas -L (2)\n$ doas -s (3)\ndoas (matoken@raspberrypi) password:
\n
\n
\n
\n
    \n
  1. \n

    1\u5ea6\u76ee\u306e\u5b9f\u884c

    \n
  2. \n
  3. \n

    -L \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6c38\u7d9a\u5316\u306e\u8a8d\u8a3c\u3092\u30af\u30ea\u30a2

    \n
  4. \n
  5. \n

    \u3059\u3050\u306bdoas\u3092\u5b9f\u884c\u3057\u3066\u3082\u6c38\u7d9a\u5316\u306e\u8a8d\u8a3c\u304c\u30af\u30ea\u30a2\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u518d\u5ea6\u8a8d\u8a3c\u304c\u5fc5\u8981

    \n
  6. \n
\n
\n
\n\n\n\n\n\n
\n
Note
\n
\n
\n
Example 2. DOAS(1)\u3088\u308a
\n
\n
\n
\n
-L          Clear any persisted authentications from previous invocations, then immediately exit.  No command is executed.
\n
\n
\n
\n
\n
\n
\n
\n

\u3068\u3044\u3046\u611f\u3058\u3067\u666e\u901a\u306b\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e
\n\u3061\u306a\u307f\u306bsudo\u30b3\u30de\u30f3\u30c9\u3067\u306f\u6c38\u7d9a\u5316\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u6642\u9593\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u5909\u66f4\u53ef\u80fd\u3067\u3059\u304c\uff0cdoas\u3067\u306f\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3055\u308c\u3066\u304a\u308a\u8a2d\u5b9a\u3067\u306f\u5909\u66f4\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
timestamp_set(fd, 5 * 60);
\n
\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W opendoas\nopendoas        6.8.2-1\n$ lsb_release -dr\nNo LSB modules are available.\nDescription:    Raspbian GNU/Linux 12 (bookworm)\nRelease:        12\n$ arch\narmv7l\n$ grep ^Model /proc/cpuinfo\nModel           : Raspberry Pi 3 Model B Rev 1.2
\n
\n
\n", "content_text": "OpenBSD\u7531\u6765\u306eDoas\u30b3\u30de\u30f3\u30c9\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308a\u307e\u3059\uff0eLinux\u7b49\u3067\u306esudo\u306b\u4f3c\u305f\u3082\u306e\u3067\u3059\u304c\uff0c\u5c0f\u3055\u304f\u30b7\u30f3\u30d7\u30eb\u3067\u3059\uff0e\u3053\u306eDoas\u30b3\u30de\u30f3\u30c9\u306e\u79fb\u690d\u7248\u306eOpenDoas\u306fLinux\u306a\u3069\u3067\u3082\u52d5\u4f5c\u3057\u307e\u3059\uff0e\nsudo\u30b3\u30de\u30f3\u30c9\u306f1\u5ea6\u8a8d\u8a3c\u306b\u6210\u529f\u3059\u308b\u3068\u305d\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u3057\u3070\u3089\u304f\u306e\u9593\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u304fsudo\u304c\u5b9f\u884c\u3067\u304d\u3066\u4fbf\u5229\u3067\u3059\u304c\uff0cOpenBSD\u306eDoas\u3067\u306f\u540c\u69d8\u306e\u6a5f\u80fd\u3092OpenBSD\u306ekernel API\u3092\u4f7f\u3063\u3066\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u78ba\u8a8d\u3057\u3066\u304a\u308a\u3053\u306eAPI\u306fOpenBSD\u3060\u3051\u306e\u3082\u306e\u306a\u306e\u3067\u5f53\u521dOpenDoas\u306b\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\n\u3044\u3064\u306e\u9593\u306b\u304bOpenDoas\u306b\u3082\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u306e\u306b\u6c17\u3065\u3044\u305f\u306e\u3067\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\nDuncaen/OpenDoas: A portable fork of the OpenBSD doas command\n\n\nsrc/usr.bin/doas/\n\n\n\n\n\nGitHub\u3092\u898b\u308b\u3068\u3053\u306e\u8fba\u3067\u5165\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\u7d50\u69cb\u524d\u3067\u3059\u306d\u2026\u2026\uff0e\n\n\n\n\nadd support for the verified auth ioctls using ‘persist’ rules. ok de\u2026 \u00b7 Duncaen/OpenDoas@27235dd\n\n\n\n\nDebian/Raspberry Pi OS\u306b\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u3042\u308b\u306e\u3067\u3053\u3061\u3089\u3092\u4f7f\u3044\u307e\u3059\uff0e\n\n\n\n$ rmadison opendoas\nopendoas | 6.8.2-1 | stable | source, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x\nopendoas | 6.8.2-1 | testing | source, armel, armhf, i386, mips64el, ppc64el, s390x\nopendoas | 6.8.2-1 | unstable | source, armel, armhf, i386, mips64el, ppc64el, s390x\nopendoas | 6.8.2-1 | unstable-debug | source\nopendoas | 6.8.2-1+b1 | stable | amd64\nopendoas | 6.8.2-1+b1 | testing | amd64, arm64, riscv64\nopendoas | 6.8.2-1+b1 | unstable | amd64, arm64, riscv64\n$ apt show opendoas\nPackage: opendoas\nVersion: 6.8.2-1\nPriority: optional\nSection: admin\nMaintainer: Scupake <scupake@riseup.net>\nInstalled-Size: 99.3 kB\nProvides: doas\nDepends: libc6 (>= 2.33), libpam0g (>= 0.99.7.1)\nBreaks: doas (<< 6.8.2)\nReplaces: doas (<< 6.8.2)\nHomepage: https://github.com/Duncaen/OpenDoas\nDownload-Size: 20.9 kB\nAPT-Manual-Installed: yes\nAPT-Sources: http://raspbian.raspberrypi.org/raspbian bookworm/main armhf Packages\nDescription: minimal replacement for sudo, with persist support\n OpenDoas: a portable version of OpenBSD's doas command\n doas is a minimal replacement for the venerable sudo. It was initially written\n by Ted Unangst of the OpenBSD project to provide 95% of the features of sudo\n with a fraction of the codebase.\n\n\n\nOpenDoas\u306e\u5c0e\u5165\n\n$ sudo apt install opendoas\n\n\n\nsudo\u30b3\u30de\u30f3\u30c9\u3067\u306esodo\u30b0\u30eb\u30fc\u30d7\u306e\u3088\u3046\u306b wheel \u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210\u3057\uff0c\u3053\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u30e6\u30fc\u30b6\u30fc\u304cdoas\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\uff0e(sudo\u30b0\u30eb\u30fc\u30d7\u3092\u6d41\u7528\u3057\u3066\u3082\u826f\u304b\u3063\u305f\u304b\u3082?)\n\n\n\n$ sudo addgroup --system wheel (1)\n$ sudo usermod -aG wheel matoken (2)\n$ grep ^wheel: /etc/group (3)\nwheel:x:140:matoken\n\n\n\n\n\nwheel \u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210\n\n\nwheel \u30b0\u30eb\u30fc\u30d7\u306b\u30e6\u30fc\u30b6\u30fc matoken \u3092\u8ffd\u52a0\n\n\n\u78ba\u8a8d\n\n\n\n\ndoas\u306e\u8a2d\u5b9a\n\n$ sudo install -m 0400 /dev/zero /etc/doas.conf\n$ echo 'permit persist :wheel' | sudo tee /etc/doas.conf (1)\npermit persist :wheel\n$ ls -l /etc/doas.conf (2)\n-r-------- 1 root root 22 11\u6708 1 05:46 /etc/doas.conf\n\n\n\n\n\n/etc/doas.conf \u306b whell \u30b0\u30eb\u30fc\u30d7\u304cdoas\u3067\u6a29\u9650\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u8a2d\u5b9a\uff0c persist \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6c38\u7d9a\u5316\u3082\uff0e\n\n\n\u30d5\u30a1\u30a4\u30eb\u6a29\u9650\u78ba\u8a8d\n\n\n\n\n\n\n\nNote\n\n\n\nExample 1. DOAS.CONF(5)\u3088\u308a\n\n\n\npersist After the user successfully authenticates, do not ask for a password again for some time.\n\n\n\n\n\n\n\n\n\ndoas\u3068\u6c38\u7d9a\u5316\u306e\u52d5\u4f5c\u78ba\u8a8d\n\n$ doas -s (1)\ndoas: Operation not permitted\n$ newgrp wheel (2)\n$ doas -s (3)\ndoas (matoken@raspberrypi) password:\n#\nexit\n$ doas -s (4)\n#\nexit\n$ doas ls -lA /run/doas/\ntotal 0\n---------- 1 root wheel 0 Nov 1 2024 29125-5366-34816-25582434-1001\n$ doas -s (5)\ndoas (matoken@raspberrypi) password:\n\n\n\n\n\n\u30b0\u30eb\u30fc\u30d7\u306b\u8ffd\u52a0\u3057\u305f\u3051\u3069\u53cd\u6620\u3055\u308c\u3066\u3044\u306a\u3044\u72b6\u614b\u306a\u306e\u3067\u6a29\u9650\u304c\u306a\u3044\n\n\n\u3068\u308a\u3042\u3048\u305anewgrp\u30b3\u30de\u30f3\u30c9\u3067\u5229\u7528\u53ef\u80fd\u306b\n\n\n1\u5ea6\u76ee\u306edoas\u306f\u8a8d\u8a3c\u304c\u5fc5\u8981\n\n\n\u3059\u3050\u306bdoas\u3092\u53e9\u304f\u3068\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u3044\n\n\n\u6642\u9593\u304c\u7d4c\u3063\u3066\u304b\u3089\u518d\u5ea6doas\u3092\u5b9f\u884c\u3059\u308b\u3068\u8a8d\u8a3c\u304c\u5fc5\u8981\n\n\n\n\n\u6c38\u7d9a\u5316\u306e\u30af\u30ea\u30a2\n\n$ doas -s (1)\ndoas (matoken@raspberrypi) password:\n#\nexit\n$ doas -L (2)\n$ doas -s (3)\ndoas (matoken@raspberrypi) password:\n\n\n\n\n\n1\u5ea6\u76ee\u306e\u5b9f\u884c\n\n\n-L \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6c38\u7d9a\u5316\u306e\u8a8d\u8a3c\u3092\u30af\u30ea\u30a2\n\n\n\u3059\u3050\u306bdoas\u3092\u5b9f\u884c\u3057\u3066\u3082\u6c38\u7d9a\u5316\u306e\u8a8d\u8a3c\u304c\u30af\u30ea\u30a2\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u518d\u5ea6\u8a8d\u8a3c\u304c\u5fc5\u8981\n\n\n\n\n\n\n\nNote\n\n\n\nExample 2. DOAS(1)\u3088\u308a\n\n\n\n-L Clear any persisted authentications from previous invocations, then immediately exit. No command is executed.\n\n\n\n\n\n\n\n\n\n\u3068\u3044\u3046\u611f\u3058\u3067\u666e\u901a\u306b\u4f7f\u3048\u305d\u3046\u3067\u3059\uff0e\n\u3061\u306a\u307f\u306bsudo\u30b3\u30de\u30f3\u30c9\u3067\u306f\u6c38\u7d9a\u5316\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u6642\u9593\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u5909\u66f4\u53ef\u80fd\u3067\u3059\u304c\uff0cdoas\u3067\u306f\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3055\u308c\u3066\u304a\u308a\u8a2d\u5b9a\u3067\u306f\u5909\u66f4\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3059\uff0e\n\n\n\ntimestamp_set(fd, 5 * 60);\n\n\n\n\u74b0\u5883\n\n$ dpkg-query -W opendoas\nopendoas 6.8.2-1\n$ lsb_release -dr\nNo LSB modules are available.\nDescription: Raspbian GNU/Linux 12 (bookworm)\nRelease: 12\n$ arch\narmv7l\n$ grep ^Model /proc/cpuinfo\nModel : Raspberry Pi 3 Model B Rev 1.2", "date_published": "2024-11-01T07:36:02+09:00", "date_modified": "2024-11-01T07:36:04+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "doas", "opendoas", "bookworm", "Linux", "Raspberry Pi OS" ] } ] }