Experms

Aus wiki.archlinux.de
Version vom 27. November 2013, 19:53 Uhr von Mephisto (Diskussion | Beiträge) (user = User)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

experms läuft als Daemon im Hintergrund und überwacht alle Dateien einer Verzeichnisstruktur oder auch Mehreren. Sobald Änderungen geschehen, passt es die Dateirechte und Besitzverhältnisse an.

Über eine Konfigurationsdatei lassen sich verschiedene Ordner, sowie deren Besitzer, Gruppen und Rechte konfigurieren. Es ist auch möglich bestimmte Dateien und Ordner auszuschließen.

Installation

Das Programm ist als expermsAUR im AUR verfügbar, und kann von dort zum Beispiel mittels Yaourt installiert werden.

yaourt -S experms
Bei der Verwendung von Yaourt ist zu beachten, dass Pakete niemals „blind“ installiert werden sollten. Vor dem Installieren mit Yaourt sollten die Kommentare im AUR gelesen, und das PKGBUILD geprüft werden.

Konfiguration

Nach erfolgreicher Installation muss als Erstes die Konfigurationsdatei /etc/experms.conf bearbeitet werden (als User ~/.experms.conf).

Beispielkonfiguration

#
# /etc/experms.conf
#

[general]
log_activities = no
restore = no

[DEFAULT]
chmodd = 755

[directory_1]
path = /first/directory
user = first-user
group = first-group
chmodf = 640
chmodd = 750
excludepath = /first/directory/exclude1,/first/directory/subdir/exclude2

[directory_2]
path = /second/directory
group = second-group
chmodf = 0644
excludepattern = .txt|.TXT|.sh|.SH

General Sektion

log_activities = yes | no bestimmt, ob jede Änderung auch ins Logfile geschrieben werden soll oder nicht.

restore = yes | no bestimmt, ob bei jedem Start von experms alle Dateien angepasst werden sollen, falls Änderungen passiert sind während experms nicht lief.

DEFAULT Sektion

Regeln, die für alle directory sections gelten. Diese können in den directory sections überschrieben werden.

Directory Sektion

path = /pfad/zu/directory Bestimme den Pfad, auf den die Regeln angewendet werden sollen
owner = username | UID Bestimme den Besitzer aller Dateien und Ordner
group = groupname | GID Bestimme die Gruppe aller Dateien und Ordner
chmodf = oktale Berechtigungen Bestimme die Berechtigungen für Dateien
chmodd = oktale Berechtigungen Bestimme die Berechtigungen für Ordner
excludepath = /pfad/ordner,/pfad/datei... Schließe bestimmte Ordner und Dateien von den Regeln aus
excludepattern = regular expression Schließe Dateien (und NUR Dateien) basierend auf einem Pattern von den Regeln aus

Inotify Konfiguration

Inotify erlaubt jedem Benutzer nur eine beschränkte Zahl an Verzeichnissen zu überwachen. Standardmäßig ist dieser Wert auf 8192 gesetzt.

Dies kann geändert werden, indem in /proc/sys/fs/inotify/max_user_watches geschrieben wird.

Um die Änderungen dauerhaft zu speichern, muss folgende Zeile ans Ende von /etc/sysctl.d/99-sysctl.conf gehängt werden:

fs.inotify.max_user_watches=8192 (ZAHL MUSS NATÜRLICH ERSETZT WERDEN)

Um zu überprüfen wieviele Verzeichnisse man überwachen möchte, hilft folgender Befehl:

experms dircount

Start

Nun kann experms gestartet werden:

experms start

experms kennt folgende Argumente:

start experms starten
stop experms stoppen
restart experms neustarten
restore Setzte alle Rechte und Besitzverhältisse für alle Dateien und Ordner
status Wenn experms läuft, zeige die PID von experms
log Zeige die letzten 10 Logeinträge, sowie die Neusten in Echtzeit
err Zeige die letzten 10 Errorlogeinträge, sowie die Neusten in Echtzeit
dircount Zähle alle effektiven Verzeichnisse, die von experms überwacht werden sollen. Nützlich, um Inotify zu konfigurieren
help | -h | --help Zeige eine kurze Hilfe
version Zeige die Version von experms
foreground Starte experms im Vordergrund. Nützlich, um Konfigurationen zu testen
debug [datei] Starte experms im Vordergrund und gib mehr Informationen aus. Nützlich, um Konfigurationen zu testen

experms ohne Root-Rechte ausführen

Es ist möglich experms ohne Root-Rechte zu starten. Doch gibt es dabei einige Einschränkungen:

  • Nur Root kann den Besitzer einer Datei ändern.
  • Nur Root oder der Besitzer kann die Gruppe einer Datei ändern.
  • Nur Root oder der Besitzer kann die Berechtigungen einer Datei ändern.

Wenn man experms ohne Root-Rechte starten möchte, musst man also zwingend der Besitzer aller zu überwachenden Dateien sein.

Hinweis: Wenn eine Datei verändert wurde, können sich unter Umständen auch die Besitzverhältnisse ändern. Sollten die Rechte für eine Aktion nicht ausreichen, würde experms eine Fehlermeldung ins Error-Log schreiben.

Um experms ohne Root-Rechte zu starten, muss man eine Kopie der Konfigurationsdatei /etc/experms.conf ins Home-Verzeichnis kopieren.

Diese Kopie darf auch .experms.conf heißen, damit sie nicht immer sichtbar ist.