17.09.2011

Linux: Logdateien als normaler Benutzer lesen

Jedesmal ein su oder sudo voranzusetzen, weil man /var/log/messages lesen oder verfolgen will kann nervig sein, zu dem braucht man das root-passwort, vor allem muss man es st├Ąndig eintippen:

~> sudo tail -fn200 /var/log/messages
Passwort:

Das nervt!

Dem kann man zwar abhelfen, in dem man jedermann Leserechte gibt, aber dies ist auch nicht gerade "ideal" - oft wird man das aus Gr├╝nden der Sicherheit nicht wollen.

Und es geht auch besser: Hier die Schritt-f├╝r Schritt-Anleitung:

1. Installieren Sie das Paket "facl". Ob das installiert ist kann man mit setfacl --help feststellen. Das Programm wird gefunden? Dann ist die Installation bereits erfolgt.

2. ├ťberpr├╝fen Sie, ob die Option "acl" in /etc/fstab f├╝r das Mounten der Partition gesetzt ist. Wenn nicht tragen Sie das nach. Das sieht zum Beispiel so aus:
/dev/disk/by-id/ata[...]-part5 / ext4 acl,user_xattr,noatime 1 1

3. Danach k├Ânnen Sie mittels
~# mount -o remount /

die Partition mit dem neuen Parameter laden. Nat├╝rlich kann man auch neu booten (aber dann h├Ątte man auch gleich ein rebootfreundliches Win.... installieren k├Ânnen :)

4. Setzen Sie jetzt einmalig das Leserecht f├╝r den Benutzer:
~# fsetacl -m BENUTZERNAME:r /var/log/messages

Erhalten Sie keine Fehlermeldung, so k├Ânnen Sie davon ausgehen, dass dies funktioniert hat. Sind Sie dennoch unsicher, so probieren Sie:
~# fgetacl /var/log/messages

Sieht die Ausgabe so aus:
# file: var/log/messages
# owner: root
# group: root
user::rw-
user:BENUTZERNAME:r--
group::r--
mask::r--
other::---

... dann ist alles bestens.

5. Das gen├╝gt aber noch nicht,

denn das Systemprogramm logrotate legt die Datei mit einer gewissen Regelm├Ą├čigkeit neu an - und Sie wollen den Vorgang doch nicht mit einer, von der Konfiguration Ihres Linux abh├Ąngigen H├Ąufigkeit wiederholen.

Logrotate kann Ihnen aber auch helfen.

Und ich lasse mir gerne von meinem Computer bei Problemen helfen, die ich ohne ihn nicht h├Ątte: Auf meinen System (OpenSuSE-Desktop) ├Âffne ich mit root-Rechten die Datei /etc/logrotate.d/syslog mit einem geeigneten Editor:

~# vi /etc/logrotate.d/syslog

und suche folgenden Abschnitt, erg├Ąnze den um die fett ausgegebene Zeile:
/var/log/warn /var/log/messages [...] {
compress
dateext
maxage 365
rotate 99
missingok
notifempty
size +4096k
create 640 root root
sharedscripts
postrotate
/etc/init.d/syslog reload > /dev/null
/usr/bin/setfacl -m BENUTZERNAME:r /var/log/messages
endscript
}

Fertig! Nat├╝rlich kann ich das f├╝r beliebige Logfiles wiederholen. Weitere Hilfe gibt es mit ~> info setfacl, ~> info getfacl (oder in meinem Aufsatz "Benutzerrechte: Access-Control-Lists (ACL) unter_Linux" - PDF) oder mit ~>info logrotate.

Keine Kommentare:

Kommentar ver├Âffentlichen