journalctl -f -a
他のユーザーのためにFedora 20で実行すると、他の結果が表示されます。ルートを使用すると、以前のtail -f /var/log/syslog
システムと同様のものが得られます。一般ユーザーとして、私はgnome-shell警告、いくつかのsuメッセージ、Firefoxが標準出力に書き込むものなどを受け取ります。デフォルトではユーザーセッションログです。
私が知る限り、Journalctlにはさまざまなジャーナルの概念があります(journalctl(1)):
アクセス可能なすべてのログファイルの出力は、回転しているのか、現在作成中であるのか、システム自体に属するのか、アクセス可能なユーザーログに属しているのかに関係なくインターリーブされます。
しかし、特定のユーザーが利用できるジャーナルのリストを取得するには?
そして、一般ユーザーがrootログにアクセスできるようにする方法は?
Journalctl のマニュアルページには次のように記載されています。
すべてのユーザーは自分の個人ユーザー固有のジャーナルにアクセスできます。ただし、デフォルトでは、rootユーザーであり、「systemd-journal」グループのメンバーであるユーザーだけがシステムログと他のユーザーのログにアクセスできます。
しかし、これはあまりにも無理なように聞こえます。ユーザーは他の一般ユーザーのログ(ルートログのみ)にアクセスできないはずです。
答え1
これsystemd-journald のマニュアルページログアクセス制御の実行方法を説明します。
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
ログファイルにアクセスできるグループとユーザーを確認するために使用できます。特定のユーザーが読めるファイルを一覧表示する簡単な方法がわかりません。