CentOS8/RHEL8 でコアファイルの出力先が /var/lib/systemd/coredump/ に統一されてしまった(挙句 LZ4 形式で圧縮されている)ため,
ここに格納されているコアファイルを任意の場所に出力する目的で coredumpctl コマンドを利用しています。
しかし,コアファイルを出力したプロセスを立ち上げた一般ユーザで coredumpctl コマンドを実行すると,
以下のエラーメッセージが出力されて,うまくコアファイルを出力できません。
$ coredumpctl dump 10220 --output /home/user/core.10220
Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
Hint に関しては特に問題ではないのですが,「No journal files〜」の部分で困っています。
systemd-coredump は,コアファイル取得時のメタデータを systemd-journal のログに保存するため,それを参照する権限がないと言っているのだと思うのですが,当方の目的はコアファイルの出力でメタデータを参照したいわけではありません。
コアファイル自体は root ユーザ,root グループで保存されていますが,
ACL でコアファイルを出力したプロセスを立ち上げた該当ユーザに read 権限が付与されているそうなので,
コアファイル自体にアクセスすることは問題ないと思っています。
コアファイルを取得したいだけなら,/etc/systemd/coredump.conf の Compress を no にして /var/lib/systemd/coredump/ から直接コピーしてくるという手もありますが,
設定ファイルを書き換えられない環境を想定しているため,どうにか coredumpctl コマンドだけで解決したいと考えています。
ちなみに,以下のサイトを参考にしましたが,ここでも上記のことは可能なように書かれています。
systemd-coredump環境で暮らす - 赤帽エンジニアブログ
以上,よろしくお願いいたします。