Wie erhalte ich Zugriff auf das Stammjournal für systemd?

7

Wenn ich journalctl -f -aunter Fedora 20 für verschiedene Benutzer ausführe, erhalte ich unterschiedliche Ergebnisse. Für root bekomme ich etwas ähnliches wie tail -f /var/log/syslogauf älteren Systemen. Als normaler Benutzer erhalte ich Gnome-Shell-Warnungen, einige su-Nachrichten, Dinge, die Firefox in stdout schreibt usw. - im Grunde ein Benutzersitzungsprotokoll.

Ich verstehe, dass journalctl das Konzept verschiedener Zeitschriften hat (journalctl (1)):

Die Ausgabe wird von allen zugänglichen Journaldateien verschachtelt, unabhängig davon, ob sie gedreht werden oder gerade geschrieben werden, und unabhängig davon, ob sie zum System selbst gehören oder zugängliche Benutzerjournale sind.

Aber wie kann man eine Liste erhalten, welche Zeitschriften für einen bestimmten Benutzer verfügbar sind?

Und wie kann man einem normalen Benutzer auch Zugriff auf das Stammjournal gewähren?

In der Manpage journalctl heißt es:

Alle Benutzer erhalten Zugriff auf ihre privaten Journale pro Benutzer. Standardmäßig erhalten jedoch nur Root und Benutzer, die Mitglieder der Gruppe "systemd-journal" sind, Zugriff auf das Systemjournal und die Journale anderer Benutzer.

Dies klingt jedoch nach zu viel - der Benutzer sollte keinen Zugriff auf die Journale anderer normaler Benutzer haben (nur auf das Stammjournal).

maxschlepzig
quelle
Ich kann nur eine Ihrer Fragen beantworten, daher mache ich das als Kommentar. Laut der Journald-Manpage befinden sich Journaldateien /var/log/journalbei Eigentümer rootund Gruppe systemd-journal. ACLs ermöglichen Benutzern den schreibgeschützten Zugriff auf ihr eigenes Journal. Fedora 20 bietet Gruppen admund wheelLesezugriff. setfacl -n -m u:username:r /var/log/journal/*/system.journalwürde einem Benutzer Zugriff auf das Systemjournal geben. Ich kann keine Journale auflisten, die von einem bestimmten Benutzer gelesen werden können, außer getfacldie Ausgabe auszuführen und zu analysieren.
Mark Plotnick

Antworten:

7

Auf der Manpage systemd-journald wird erläutert, wie die Journalzugriffskontrolle durchgeführt wird:

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 verwendet ACLs, um Benutzern in admund wheelGruppen Lesezugriff auf alle Zeitschriften zu gewähren .

Wie kann ein normaler Benutzer auch auf das Stammjournal zugreifen?

Ausführen setfacl -n -m u:username:r /var/log/journal/*/system.journal.

Wie bekomme ich eine Liste, welche Zeitschriften für einen bestimmten Benutzer verfügbar sind?

Sie können suden Benutzer aufrufen und ausführen journalctl --header|grep '^File Path', um die Namen der Zeitschriften anzuzeigen, auf die er Zugriff hat.

getfaclkann verwendet werden, um zu sehen, welche Gruppen und Benutzer Zugriff auf Journaldateien haben. Ich kenne keine einfache Möglichkeit, die Dateien aufzulisten, die von einem bestimmten Benutzer gelesen werden können.

Mark Plotnick
quelle
'usermod -aG systemd-journal username' ermöglicht einem bestimmten Benutzer den permanenten Zugriff auf das Journal.
Siosm