Ich habe ein Verzeichnis mit Protokolldateien und füge Protokolle von Skripten, die von Benutzern gestartet wurden, in diese ein. Die Protokollierung mit Syslog scheint in diesem Fall nicht möglich zu sein. (Nicht-Daemon-Rsync)
Ich möchte, dass die Benutzer nur Schreibberechtigungen für Protokolldateien haben. Das Problem ist, dass die Schreibberechtigungen weiter eingeschränkt werden müssen, damit Benutzer (Skript) nur an diese Dateien anhängen können. Das zugrunde liegende Dateisystem ist XFS.
Folgendes funktioniert nicht:
# chattr +a test.log
chattr: Inappropriate ioctl for device while reading flags on test.log
Gibt es dafür eine andere Lösung? Vielen Dank für Ihre Hinweise.
chattr +a
funktioniert bei mir hier (3.2 Kernel). Beachten Sie, dass Sie root sein müssen, um verwendet zu werdenchattr
(eine$
Eingabeaufforderung schlägt vor, dass kein Superuser verwendet wird), obwohl Sie eine andere Fehlermeldung erhalten, wenn dieschattr +a
unterstützt wurde und Sie nicht root waren.Antworten:
Das
chattr
Dienstprogramm wurde für ext2 / ext3 / ext4-Dateisysteme geschrieben. Es gibt Ioctls für die Dateien aus, sodass es dem zugrunde liegenden Dateisystem überlassen bleibt , zu entscheiden, was mit ihnen geschehen soll. Der XFS-Treiber in neueren Linux-Kerneln unterstützt dasselbeFS_IOC_SETFLAGS
ioctl wie ext [234], um Flags wie "Nur Anhängen" zu steuern. Möglicherweise führen Sie jedoch einen älteren Kernel aus, in dem dies nicht der Fall ist (CentOS?). Versuchen Sie stattdessen, dasxfs_io
Dienstprogramm zu verwenden:Beachten Sie, dass für XFS wie für ext [234] nur root das Nur-Anhängen-Flag ändern kann (genauer gesagt, Sie benötigen die
CAP_LINUX_IMMUTABLE
Funktion).quelle
Haben Sie die Berechtigung dazu? Von
man 1 chattr
:quelle
Alternativ können Sie dies auch mit SELinux erreichen Wenn Sie eine Red Hat-kompatible Distribution , ist es wahrscheinlich aktiviert und läuft. Dies funktioniert auf jedem Dateisystem. SELinux verhindert, dass Prozesse unzulässige Vorgänge ausführen.
Leider müssen Sie eine Richtlinie für Ihre Anwendung schreiben, um auf alle Systemressourcen zugreifen zu können, mit Ausnahme des Anhängens an bestimmte Dateien. Dies kann eine Herausforderung sein, wenn Sie dies zum ersten Mal tun, aber dies hat einen Vorteil - zusätzliche Sicherheitsebene.
In diesem Vortrag habe ich ein Beispiel für das Schreiben einer Nur-Anhängen-Dateiregel: https://www.youtube.com/watch?v=zQcYXJkwTns
quelle