Nachfolgende Zeichenfolge im Namen temporärer Verzeichnisse

Nachfolgende Zeichenfolge im Namen temporärer Verzeichnisse

Ich habe festgestellt, dass die privaten Verzeichnisnamen von systemd mit einer Zeichenfolge enden, zum Beispiel:

systemd-private-3108aa34ce664b6dbb374430ba5f0592-mariadb.service-Q78z1I

Was bedeutet eine solche Zeichenfolge?

Antwort1

Herumstöbern inDie Quelleenthüllt

./src/core/namespace.c:        x = strjoin(prefix, "/systemd-private-", sd_id128_to_string(boot_id, bid), "-", id, "-XXXXXX", NULL);

dem man schließlich nachjagen könnte als Beziehung zu demmktemp(3)Aufruf, der eine (hoffentlich) eindeutige Datei erstellt, die ein lokaler Angreifer mit Schreibzugriff auf das übergeordnete Verzeichnis nur schwer im Voraus erraten oder erstellen kann.

Sechs X gelten als zu kurz; die Entwickler von OpenBSD empfehlen stattdessen 10 X, wobei die ideale Anzahl vom Dateisystem abhängt, davon, wie sorgfältig ein Angreifer alle Möglichkeiten schaffen kann (wenn er die meisten oder alle Möglichkeiten schaffen kann, könnte das ein Denial-of-Service-Angriff sein), im Vergleich dazu, wie viele Inodes das Dateisystem zulässt und wie sorgfältig das betreffende Verzeichnis auf absurde Dateizahlen (oder Erschöpfung der Inodes) überwacht wird. Verwenden Sie diemathematische Kombinationum herauszufinden, wie viele potenzielle Dateien eine bestimmte Anzahl von X bei einer bestimmten Anzahl von Eingabezeichen (normalerweise alphanumerisch plus Unterstrich) zulässt.

verwandte Informationen