web-dev-qa-db-ja.com

systemdのルートジャーナルにアクセスする方法

Fedora 20で異なるユーザーに対してjournalctl -f -aを実行すると、異なる結果が得られます。ルートの場合、古いシステムではtail -f /var/log/syslogに似たものが得られます。通常のユーザーとして、私はgnome-Shell警告、いくつかのsuメッセージ、Firefoxがstdoutに書き込むものなどを受け取ります。基本的にはユーザーセッションログです。

Journalctlにはさまざまなジャーナル(journalctl(1))の概念があることを理解しています。

出力は、ローテーションされているか、現在書き込まれているかに関係なく、アクセス可能なすべてのジャーナルファイルからインターリーブされます。ファイルがシステム自体に属するか、アクセス可能なユーザージャーナルであるかは関係ありません。

しかし、特定のユーザーが利用できるジャーナルのリストを取得するにはどうすればよいですか?

また、通常のユーザーにルートジャーナルへのアクセスも許可するにはどうすればよいですか?

Journalctlのmanページには、

すべてのユーザーは、ユーザーごとのプライベートジャーナルへのアクセスを許可されます。ただし、デフォルトでは、「systemd-journal」グループのメンバーであるrootとユーザーのみが、システムジャーナルと他のユーザーのジャーナルにアクセスできます。

しかし、これは多すぎるように聞こえます-ユーザーは他の通常のユーザーのジャーナルにアクセスするべきではありません(ルートジャーナルにのみ).

7
maxschlepzig

systemd-journald man page は、ジャーナルのアクセス制御がどのように行われるかを説明しています。

Journal files are, by default, owned and readable by the "systemd-journal"
system group but are not writable. Adding a user to this group thus enables
her/him to read the journal files.

By default, each logged in user will get her/his own set of journal files in
/var/log/journal/. These files will not be owned by the user, however, in order
to avoid that the user can write to them directly. Instead, file system ACLs
are used to ensure the user gets read access only.

Additional users and groups may be granted access to journal files via file
system access control lists (ACL).

Fedora 20はACLを使用して、admおよびwheelグループのユーザーにすべてのジャーナルへの読み取りアクセスを許可します。

通常のユーザーにルートジャーナルへのアクセスも許可する方法は?

実行setfacl -n -m u:username:r /var/log/journal/*/system.journal

特定のユーザーが利用できるジャーナルのリストを取得する方法は?

ユーザーにsuを実行してjournalctl --header|grep '^File Path'アクセスできるジャーナルの名前を確認します。

getfaclを使用すると、ジャーナルファイルにアクセスできるグループとユーザーを確認できます。特定のユーザーが読み取れるファイルを一覧表示する簡単な方法がわかりません。

7
Mark Plotnick