fix(acl): Glob-Wurzeln brauchen r-x — Ursache der stummen Datenluecke auf x14

x14 sendete 105 Metriken, aber KEINE apache-Metriken und keine Logs. Der
Installer meldete Erfolg. Telegraf selbst nannte den Grund:

  W! [inputs.tail] Directory "/home/users" is not readable but is followed
     by wildcards, make sure you set read permissions or globbing will not work!

Drei Ursachen, alle behoben:

1. `setfacl -m u:telegraf:x` auf der Glob-Wurzel ist FALSCH. Eine Wildcard wird
   per readdir expandiert — dafuer braucht das Verzeichnis `r-x`, nicht nur `x`.
   Neue Logik: Muster werden mit `set -f` gelesen, dann je Treffer die Datei mit
   `r` und JEDE Ebene zwischen Wurzel und Datei mit `r-x` belegt.
   Gemessen: alte ACL -> 1 Warnung, 1 Punkt (nur /var/log/apache2);
   neue ACL -> 0 Warnungen, 4 Punkte (alle 3 Dateien inkl. User-Homes).

2. Der Gegentest war blind: er las jede gefundene Datei per `head -c 1` als
   telegraf. Das konnte nicht fehlschlagen, weil die Datei vom ROOT-Shell
   expandiert wurde — die Glob-Wurzel blieb unlesbar, Telegraf bekam 0 Treffer,
   die Meldung sagte trotzdem "alle N Logdateien lesen". Jetzt wird die
   GLOB-AUFLOESUNG gemessen: dasselbe Muster im Dienstkontext expandieren und die
   Trefferzahl vergleichen. 0 von 0 zaehlt als Fehler, nicht als Erfolg.

3. `for p in $_pfadquelle` ohne `set -f` expandiert die Muster im Root-Shell.
   _pattern war danach ein konkreter Dateiname, der Wildcard-Zweig lief nie, und
   die ACL landete nur auf den Dateien. Real passiert: "ACL auf 3 Datei(en)",
   "kein Glob-Muster gefunden", 0 Treffer im Dienst.

Verifiziert mit echtem Telegraf 1.40.0 und REALEN KeyHelp-Rechten
(/home/users/<user> 0700, logs 0750, Dateien 0640).
This commit is contained in:
mm committed 2026-09-14 11:21:00 +02:00
1 parent 3f9ac51c45
commit 6f82bad6f9
2 files changed
+98 -93

No files matched your search

+1 -1
View File
@@ -1 +1 @@
1.8.0
1.9.0