Waechter: engere Dateirechte und ein Probeschalter
Der erste automatische Lauf war erfolgreich (14:20, 18 Punkte, 0 auffaellig). Zwei Nachtraege: RECHTE Zustandsdatei und Protokoll lagen mit 644 in einem 755-Verzeichnis. Personenbezogene Daten stehen dort keine -- wohl aber eine vollstaendige Liste aller Dienste, Adressen und ihres Zustands. Fuer jemanden, der einen Angriff vorbereitet, ist das eine bequeme Landkarte. Jetzt 700/600. Kostet nichts, also gibt es auch keinen Grund, es herzugeben. PROBESCHALTER node waechter.mjs --probe Verschickt eine Meldung, ohne dass etwas kaputt sein muss. Das ist die einzige Moeglichkeit, den MELDEWEG zu pruefen, ohne auf eine echte Stoerung zu warten. Der Grund ist derselbe wie beim stillen "if (!url) return;", das diese Reihe ausgeloest hat: Eine Ueberwachung, deren Zustellung stillschweigend nicht funktioniert, ist schlimmer als gar keine. Man haelt die Stille dann fuer "alles in Ordnung" -- dabei ist sie nur Stille. Steht bewusst VOR den Messungen: Wer den Meldeweg pruefen will, soll nicht erst 18 Punkte abfragen muessen. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -274,11 +274,20 @@ async function meldung(titel, text) {
|
||||
ABLAUF
|
||||
--------------------------------------------------------------------- */
|
||||
|
||||
/* 700/600 statt der Vorgabe 755/644. Hier stehen keine
|
||||
personenbezogenen Daten, aber eine vollstaendige Liste aller Dienste,
|
||||
Adressen und ihres Zustands -- fuer jemanden, der einen Angriff
|
||||
vorbereitet, eine bequeme Landkarte. Sie kostet nichts, also gibt es
|
||||
auch keinen Grund, sie herzugeben. */
|
||||
function verzeichnisSichern(pfad) {
|
||||
mkdirSync(dirname(pfad), { recursive: true, mode: 0o700 });
|
||||
}
|
||||
|
||||
function protokoll(text) {
|
||||
try {
|
||||
mkdirSync(dirname(PROTOKOLL), { recursive: true });
|
||||
verzeichnisSichern(PROTOKOLL);
|
||||
writeFileSync(PROTOKOLL,
|
||||
`${new Date().toISOString()} ${text}\n`, { flag: "a" });
|
||||
`${new Date().toISOString()} ${text}\n`, { flag: "a", mode: 0o600 });
|
||||
} catch { /* Protokoll ist Beiwerk, nicht der Zweck */ }
|
||||
console.log(text);
|
||||
}
|
||||
@@ -292,8 +301,28 @@ function zustandLesen() {
|
||||
}
|
||||
|
||||
function zustandSchreiben(z) {
|
||||
mkdirSync(dirname(ZUSTAND_DATEI), { recursive: true });
|
||||
writeFileSync(ZUSTAND_DATEI, JSON.stringify(z, null, 1), "utf8");
|
||||
verzeichnisSichern(ZUSTAND_DATEI);
|
||||
writeFileSync(ZUSTAND_DATEI, JSON.stringify(z, null, 1), { encoding: "utf8", mode: 0o600 });
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
PROBELAUF: node waechter.mjs --probe
|
||||
|
||||
Verschickt eine Meldung, ohne dass etwas kaputt sein muss.
|
||||
|
||||
Das ist nicht Spielerei, sondern die einzige Moeglichkeit, den
|
||||
MELDEWEG zu pruefen, ohne auf eine echte Stoerung zu warten. Eine
|
||||
Ueberwachung, deren Zustellung stillschweigend nicht funktioniert,
|
||||
ist schlimmer als gar keine: Man haelt Stille faelschlich fuer
|
||||
"alles in Ordnung" -- dabei ist sie nur Stille.
|
||||
--------------------------------------------------------------------- */
|
||||
if (process.argv.includes("--probe")) {
|
||||
const r = await meldung(
|
||||
"Probe vom Waechter",
|
||||
"Wenn du das liest, kommen Stoerungsmeldungen an."
|
||||
);
|
||||
protokoll(`Probelauf: ${r.gesendet ? r.gesendet + " Geraet(e) erreicht" : "NICHT zugestellt (" + r.grund + ")"}`);
|
||||
process.exit(r.gesendet ? 0 : 1);
|
||||
}
|
||||
|
||||
const jetzt = {};
|
||||
|
||||
Reference in New Issue
Block a user