Wenn ich journalctl -f -a
unter Fedora 20 für verschiedene Benutzer ausführe, erhalte ich unterschiedliche Ergebnisse. Für root bekomme ich etwas ähnliches wie tail -f /var/log/syslog
auf ä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).
quelle
/var/log/journal
bei Eigentümerroot
und Gruppesystemd-journal
. ACLs ermöglichen Benutzern den schreibgeschützten Zugriff auf ihr eigenes Journal. Fedora 20 bietet Gruppenadm
undwheel
Lesezugriff.setfacl -n -m u:username:r /var/log/journal/*/system.journal
würde einem Benutzer Zugriff auf das Systemjournal geben. Ich kann keine Journale auflisten, die von einem bestimmten Benutzer gelesen werden können, außergetfacl
die Ausgabe auszuführen und zu analysieren.Antworten:
Auf der Manpage systemd-journald wird erläutert, wie die Journalzugriffskontrolle durchgeführt wird:
Fedora 20 verwendet ACLs, um Benutzern in
adm
undwheel
Gruppen Lesezugriff auf alle Zeitschriften zu gewähren .Ausführen
setfacl -n -m u:username:r /var/log/journal/*/system.journal
.Sie können
su
den Benutzer aufrufen und ausführenjournalctl --header|grep '^File Path'
, um die Namen der Zeitschriften anzuzeigen, auf die er Zugriff hat.getfacl
kann 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.quelle