journalctl でログが見れない/permission denied になる場合の原因と解決方法

  • URLをコピーしました!

journalctl は systemd 環境で利用できるログ閲覧コマンドですが、一般ユーザーで実行すると以下のように Permission denied が表示されることがあります。

$ journalctl
No journal files were found.
-- No entries --

または、

Failed to open journal: Permission denied

この問題の多くは 権限設定 に原因があります。

目次

主な原因

  1. root 権限が必要
    • journalctl でシステム全体のログにアクセスするには、通常 root 権限が必要です。
  2. systemd-journal グループに所属していない
    • 一般ユーザーがログにアクセスするには、systemd-journal グループのメンバーである必要があります。
  3. ログファイルのパーミッション設定
    • /var/log/journal/ 配下のパーミッションや ACL 設定が適切でない場合もアクセスできません。

解決方法

1. root で実行する

一時的に確認する場合は sudo を付ければ解決します。

sudo journalctl -xe

2. ユーザーを systemd-journal グループに追加する

一般ユーザーで利用したい場合は、以下を実行します。

# ユーザーを systemd-journal グループに追加
sudo usermod -aG systemd-journal <ユーザー名>

# グループ反映のため再ログイン
exit

反映後、再度ログインして以下で確認できます。

groups <ユーザー名>

systemd-journal が含まれていればOKです。

3. ログディレクトリの確認

もし上記でも改善しない場合は、ログディレクトリの権限を確認します。

ls -ld /var/log/journal

正しい設定例:

drwxr-sr-x+ 3 root systemd-journal 4096 Sep 27 10:00 /var/log/journal

systemd-journal にグループ権限(r-x 以上)がついているか確認しましょう。

まとめ

  • journalctl は root か systemd-journal グループの権限が必要。
  • 一般ユーザーで使うなら usermod -aG systemd-journal <ユーザー名> を設定。
  • ディレクトリ権限が壊れていないかも確認。

👉 journalctl を日常的に使う運用者は、systemd-journal グループに所属させる設定をおすすめします。

目次